Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
ROWID ???
|
|||
|---|---|---|---|
|
#18+
Вдогонку: хранить GUID правилнее даже не в CHAR(32) а в RAW(16). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2004, 14:28 |
|
||
|
ROWID ???
|
|||
|---|---|---|---|
|
#18+
ZaxxНе похоже, иначе не было-бы фразы про то-что "ROWID в последних версиях Oracle может "плавать"". Уважаемый Zaxx, Вы что не согласны с Ежиком? Я и ёжикВ древние времена не мянялся за время жизни записи, с появлением Index Organized Tables и Partitioned Tables потерял своё постоянство для них ZaxxЯ повторюсь: вы сравниваете телевизор с холодильником. ROWID вообще не решает задачу уникальной идентификации. Не спорю, но только то, что раньше, в принципе можно было решить при помощи "телевизора" на Oracle, теперь, вообще, не решается, а точнее решается как вы сказали (запихиванием GUID вручную), а "холодильника" нет. ZaxxВы пытаетесь повесить на него задачи, которые он не может выполнять. Задачу уникальной идентификации в Oracle выполняют sequens-ы (причём более гибко и удобно чем identity в M$SQL). Кто спорит-то? Только sequenCe (пишется через "c") и identity призваны в основном для другого - для primary key. Нет теоретически, для уникальности записей в рамках одной БД подойдет и sequence (identity уж точно не подойдет), но в рамках нескольких БД (хоть до уровня планеты) uniqueidentifier с этим еще лучше справится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2004, 15:29 |
|
||
|
ROWID ???
|
|||
|---|---|---|---|
|
#18+
LeonidВ древние времена не мянялся за время жизни записи В древние времена можно было пересоздать таблицу или сделать Exp/Imp и ROWID записей менялся. Поэтому никому никогда не приходило в голову использовать ROWID так как вы предлагаете. Leonidчто раньше, в принципе можно было решить при помощи "телевизора" на Oracle Да не использовали никогда ROWID для этих целей. НИКОГДА. После восстановления базы из дампа ROWID неизбежно МЕНЯЛИСЬ. ВСЕГДА!!! Leonidвообще, не решается, а точнее решается как вы сказали (запихиванием GUID вручную) Чем по вашему отличается система с триггером (из 3 строк) который будет засовывать GUID в поле от поля с типом GUID в M$SQL ??? Триггер это "запихивание GUID вручную" ??? LeonidТолько sequenCe (пишется через "c") В данном случае не важно, не на диктанте сидим... Leonididentity призваны в основном для другого - для primary key Почему для другого ??? А чем вам GUID не primary key ??? Leonidрамках нескольких БД uniqueidentifier с этим еще лучше справится Ну в рамках нескольких БД - ROWID вам тоже не поможет. А можно и на sequence выйти из положения, добавив идентификатор БД к номеру который выдаёт sequence. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2004, 17:09 |
|
||
|
ROWID ???
|
|||
|---|---|---|---|
|
#18+
ZaxxЧем по вашему отличается система с триггером (из 3 строк) который будет засовывать GUID в поле от поля с типом GUID в M$SQL ??? Триггер это "запихивание GUID вручную" ??? Хорошо Zaxx, возможно, я не так сведущ в PL/SQL как вы. Скажите мне как в Oracle-овском тригере на PL/SQL, без использования внешних процедур и Java взять GUID и тогда разойдемся друзьями. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2004, 17:56 |
|
||
|
ROWID ???
|
|||
|---|---|---|---|
|
#18+
Так ведь Zaxx уже упомянул в самом конце сообщения:\r \r Oracle9i SQL Reference\r 6 Functions\r SYS_GUID\r http://download-west.oracle.com/docs/cd/B10501_01/server.920/a96540/functions125a.htm#7919 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2004, 18:31 |
|
||
|
ROWID ???
|
|||
|---|---|---|---|
|
#18+
Разойдёмся :) : create or replace trigger before insert on xxxtable for each row begin if :new.giud is null then :new.giud_column:=SYS_GUID(); end if; end; --В принципе, хватило-бы строчки :new.giud_column:=SYS_GUID(), но вдруг вам захочется иногда и с клиентского приложения эту колонку заполнять. Кстати, странно, в документации (ссылка от Denis Popov) написано : "SYS_GUID generates and returns a globally unique identifier (RAW value) made up of 16 bytes" и про "32-character hexadecimal representation of the 16-byte RAW value of the global unique identifier", а в примере там-же написано ALTER TABLE locations ADD (uid_col RAW(32)). А я сегодня проверял - лезет GUID в RAW(16)...непонятно зачем RAW(32)... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2004, 21:05 |
|
||
|
ROWID ???
|
|||
|---|---|---|---|
|
#18+
можно так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2004, 13:38 |
|
||
|
|

start [/forum/topic.php?fid=35&msg=32459478&tid=1554163]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
36ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
| others: | 176ms |
| total: | 308ms |

| 0 / 0 |
