Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Опрос: типы полей в первичном ключе  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 51775

Чтобы определить стоимость выделки овчинки, решил вот
поинтересоваться... Надеюсь тут достаточно репрезентативная аудитория...

Какие типы полей кроме VARCHAR2, NUMBER и DATE используются в первичных
ключах вашей БД?

Posted via ActualForum NNTP Server 1.4

31 май 09, 21:04    [7249181]     Ответить | Цитировать Сообщить модератору
 Re: Опрос: типы полей в первичном ключе  [new]
drakoshka
Member

Откуда:
Сообщений: 49
Dimitry Sibiryakov,

Для первичного ключа как правило (но не всегда) использовался number, заполняемый из последовательности, уникальный идентификатор сущности оформлялся в виде уникального ключа.
1 июн 09, 00:16    [7249518]     Ответить | Цитировать Сообщить модератору
 Re: Опрос: типы полей в первичном ключе  [new]
ZVV
Member

Откуда: Минск
Сообщений: 744
Dimitry Sibiryakov

Чтобы определить стоимость выделки овчинки, решил вот
поинтересоваться... Надеюсь тут достаточно репрезентативная аудитория...

Какие типы полей кроме VARCHAR2, NUMBER и DATE используются в первичных
ключах вашей БД?


Других что-то навскидку и неприпомню...
А какой, если не секрет, вариант овчинки вы рассматриваете?
1 июн 09, 00:32    [7249553]     Ответить | Цитировать Сообщить модератору
 Re: Опрос: типы полей в первичном ключе  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 51775

drakoshka

Для первичного ключа как правило (но не всегда) использовался number,

Вот ради выяснения этого "не всегда" я и начал тему. Если есть у кого-то
сумашедшая БД с, скажем, TIMESTAMP WITH LOCAL TIME ZONE, мне хотелось бы
знать это заранее, а не когда гневные заказчики начнут материться в
саппорте.

Posted via ActualForum NNTP Server 1.4

1 июн 09, 00:45    [7249573]     Ответить | Цитировать Сообщить модератору
 Re: Опрос: типы полей в первичном ключе  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18484
Да без проблем, делай TIMESTAMP, только не забывай про дискретность, как бы два события не произошло в одно и тоже время. На винде, например, точность 3 знака после запятой, да и то, похоже, миллисекунда выбирается для каждой сотой секунды с помощью какого-то рандомного алгоритма
prg> exec for i in 1..200 loop dbms_output.put_line(systimestamp); end loop;
01-JUN-09 11.05.33.703000000 AM +11:00
01-JUN-09 11.05.33.703000000 AM +11:00
...
01-JUN-09 11.05.33.703000000 AM +11:00
01-JUN-09 11.05.33.703000000 AM +11:00
01-JUN-09 11.05.33.718000000 AM +11:00
01-JUN-09 11.05.33.718000000 AM +11:00
...
01-JUN-09 11.05.33.718000000 AM +11:00
01-JUN-09 11.05.33.718000000 AM +11:00

PL/SQL procedure successfully completed.
Другое дело, что это все-таки не ключ, как таковой, хоть и может использоваться вместо него в определенных случаях (не забыть бы еще и про перевод времени)
1 июн 09, 04:09    [7249716]     Ответить | Цитировать Сообщить модератору
 Re: Опрос: типы полей в первичном ключе  [new]
wildwind
Member

Откуда: Москва
Сообщений: 1296
Dimitry Sibiryakov,

select data_type, count(*)
  from dba_cons_columns natural join dba_constraints natural join dba_tab_columns
 where constraint_type = 'P' 
   and owner not in ('SYS', 'SYSTEM', 'XDB', 'WMSYS', 'WKSYS', 'MDSYS', 'CTXSYS', 'ORDSYS', 'DBSNMP')
 group by data_type
 order by count(*)

На разных базах

DATA_TYPE COUNT(*)
----------------------------------- ---------
NVARCHAR2 1
CHAR 4
DATE 43
RAW 53
VARCHAR2 111
NUMBER 515

Тип COUNT(*)
---------------- ---------
ROWID 1
TIMESTAMP(6) 2
CHAR 5
RAW 53
DATE 90
VARCHAR2 151
NUMBER 969

DATA_TYPE COUNT(*)
----------------------------------- ---------
CHAR 1
TIMESTAMP(6) 2
DATE 7
VARCHAR2 60
NUMBER 191

DATA_TYPE COUNT(*)
----------------------------------- ---------
CHAR 1
TIMESTAMP(6) 4
DATE 22
RAW 219
NUMBER 235
VARCHAR2 326

Причем, что интересно

select data_type, count(*)
  from dba_cons_columns natural join dba_constraints natural join dba_tab_columns
 where constraint_type = 'P' 
   and owner /*not*/ in ('SYS', 'SYSTEM', 'XDB', 'WMSYS', 'WKSYS', 'MDSYS', 'CTXSYS', 'ORDSYS', 'DBSNMP')
 group by data_type
 order by count(*)

DATA_TYPE                            COUNT(*)
----------------------------------- ---------
TIMESTAMP(3) 1
TIMESTAMP(9) 1
ROWID 1
CHAR 3
DATE 5
TIMESTAMP(6) 14
RAW 58
VARCHAR2 239
NUMBER 759
1 июн 09, 10:46    [7250201]     Ответить | Цитировать Сообщить модератору
 Re: Опрос: типы полей в первичном ключе  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 51775

Спасибо, это именно то, что я хотел.
wildwind
ROWID 1

Оооо... Готичненько... Надо будет учесть...

Posted via ActualForum NNTP Server 1.4

1 июн 09, 11:17    [7250343]     Ответить | Цитировать Сообщить модератору
 Re: Опрос: типы полей в первичном ключе  [new]
Lecter
Member

Откуда: Киев
Сообщений: 2032
Dimitry Sibiryakov

drakoshka

Для первичного ключа как правило (но не всегда) использовался number,

Вот ради выяснения этого "не всегда" я и начал тему. Если есть у кого-то
сумашедшая БД с, скажем, TIMESTAMP WITH LOCAL TIME ZONE, мне хотелось бы
знать это заранее, а не когда гневные заказчики начнут материться в
саппорте.


1 июн 09, 11:26    [7250402]     Ответить | Цитировать Сообщить модератору
 Re: Опрос: типы полей в первичном ключе  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
Dimitry Sibiryakov

Спасибо, это именно то, что я хотел.
wildwind
ROWID 1

Оооо... Готичненько... Надо будет учесть...

имхо, некто сделал на-раз и не подчистил за собой
1 июн 09, 13:36    [7251187]     Ответить | Цитировать Сообщить модератору
 Re: Опрос: типы полей в первичном ключе  [new]
wildwind
Member

Откуда: Москва
Сообщений: 1296
orawish
имхо, некто сделал на-раз и не подчистил за собой

Нет :)
1 июн 09, 23:35    [7253777]     Ответить | Цитировать Сообщить модератору
 Re: Опрос: типы полей в первичном ключе  [new]
AndrK
Member

Откуда: Златоуст
Сообщений: 418
wildwind
orawish
имхо, некто сделал на-раз и не подчистил за собой

Нет :)

Global Temporary или что-то промежуточное?
2 июн 09, 12:40    [7255312]     Ответить | Цитировать Сообщить модератору
 Re: Опрос: типы полей в первичном ключе  [new]
wildwind
Member

Откуда: Москва
Сообщений: 1296
AndrK
Global Temporary

Да
2 июн 09, 17:19    [7257328]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить