powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / UNIQUE в MS SQL и в ORACLE
25 сообщений из 59, страница 1 из 3
UNIQUE в MS SQL и в ORACLE
    #33109239
azhukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Понадобилось тут создать на MS SQL табличке констрейнт UNIQUE по столбцу, где могут быть пустые значения, но по непустым нужна уникальность и был крайне удивлен, что в отличии от Oracle там это не проходит. NULL там расссматривается как такое же значение как и не пустые, то есть двух пустых быть не может. Но ведь это неправильно!
...
Рейтинг: 0 / 0
UNIQUE в MS SQL и в ORACLE
    #33109321
Vasya76
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
:)
...
Рейтинг: 0 / 0
UNIQUE в MS SQL и в ORACLE
    #33109356
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ага, и select 1 from dual не работает!
полный отстой!
...
Рейтинг: 0 / 0
UNIQUE в MS SQL и в ORACLE
    #33109392
Crip
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вам сюда
...
Рейтинг: 0 / 0
UNIQUE в MS SQL и в ORACLE
    #33109478
azhukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
CripВам сюда
Это конечно решение, но некрасивое:))
...
Рейтинг: 0 / 0
UNIQUE в MS SQL и в ORACLE
    #33109557
nkulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кто сказал что множество null в UNIQUE это не правильно??? Может наоборот???
...
Рейтинг: 0 / 0
UNIQUE в MS SQL и в ORACLE
    #33109938
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Баг
...
Рейтинг: 0 / 0
UNIQUE в MS SQL и в ORACLE
    #33109943
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя да, если об этом написано в документации, то это у MS фича...
...
Рейтинг: 0 / 0
UNIQUE в MS SQL и в ORACLE
    #33110299
Один1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
azhukovНо ведь это неправильно! А что есть критерий "правильности" ?
Oracle ?
...
Рейтинг: 0 / 0
UNIQUE в MS SQL и в ORACLE
    #33110387
Фотография www.fun4me.narod.ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это правильно!
...
Рейтинг: 0 / 0
UNIQUE в MS SQL и в ORACLE
    #33110401
Фотография www.fun4me.narod.ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
You cannot create a unique index on a single column if that column contains NULL in more than one row. Similarly, you cannot create a unique index on multiple columns if the combination of columns contains NULL in more than one row. These are treated as duplicate values for indexing purposes.
...
Рейтинг: 0 / 0
UNIQUE в MS SQL и в ORACLE
    #33110531
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GoldБаг
(иезуитским шепотом): на самом деле баг в оракуле, который допускает сии заведомо неправильные ситуяции....
а select 1 from dual в mssql работает, стоит только приложить руку....
зато в оракуле не работаит select @@microsoftversion...
а вот в сайбейзе работаит... стоит только приложить руку....
...
Рейтинг: 0 / 0
UNIQUE в MS SQL и в ORACLE
    #33110537
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
locky GoldБаг
(иезуитским шепотом): на самом деле баг в оракуле, который допускает сии заведомо неправильные ситуяции....
а select 1 from dual в mssql работает, стоит только приложить руку....
зато в оракуле не работаит select @@microsoftversion...
а вот в сайбейзе работаит... стоит только приложить руку....
И в ASA тоже явный баг, правда очень такой баг всем нравится :)

P.S. А в каком Sybase нужно прикладывать руку ? С ASA то все понятно, вешаем на коннект процедуру инициализации, в которой создаем глобальную переменную @@microsoftversion, в которую пишем "Microsoft SQL Server 2005 Final", чтобы все сессии радовались. А разве в других СУБД Sybase это возможно ?
...
Рейтинг: 0 / 0
UNIQUE в MS SQL и в ORACLE
    #33110553
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2ASCRUS
ну, насчет Сайбейза я не сумлевался - всё-ж таки братья идеологически когда-то единоутробные.
А вот насчет какого сайбейза я говорил - дык Вам виднее, Вы у нас спец по ним. Но то что в каком-то точно можно было - я помнил четко (и жутко завидовал)
p.s. кста, @@microsoftversion - int.
...
Рейтинг: 0 / 0
UNIQUE в MS SQL и в ORACLE
    #33110578
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Один1
А что есть критерий "правильности" ?
Oracle ?

Почему нет? Если нужно чтобы null не допускался, можно наложить сответствующее ограничение целостности на значение. А уникальность кроме пустых значений имеет смысл в некоторых случаях в РМД. Например, есть страховой персональный номер. Он уникальный по стране. Но в момент прихода на предприятие его у некоторых нет. Потому нужна и уникальность на тех у кого есть (чтобы не засандалили одного и того же несколько раз или не дали один и тот же нескольким.), и допуск пустых значений для тех у кого нет.
Последних обычно не много, и с ними ошибка менее вероятна.
...
Рейтинг: 0 / 0
UNIQUE в MS SQL и в ORACLE
    #33110759
c127
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 azhukov

>NULL там расссматривается как такое же значение как и не пустые, то есть двух пустых быть не может. Но ведь это неправильно!

Это как раз правильно, если не ошибаюсь так написано в стандарте. По-моему это действительно очень удобно, но к сожалению почти все пошли другим путем.

2 locky

>ну, насчет Сайбейза я не сумлевался - всё-ж таки братья идеологически когда-то единоутробные.

Сайбейз ASA к мелкософту не имеет отношения. Это ASE родственник мелкомягкому. ASE тоже вроде бы поддерживает много NULL-ов в UNIQUE полях.
...
Рейтинг: 0 / 0
UNIQUE в MS SQL и в ORACLE
    #33110888
azhukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
c1272 azhukov

>NULL там расссматривается как такое же значение как и не пустые, то есть двух пустых быть не может. Но ведь это неправильно!

Это как раз правильно, если не ошибаюсь так написано в стандарте. По-моему это действительно очень удобно, но к сожалению почти все пошли другим путем.

2 locky

>ну, насчет Сайбейза я не сумлевался - всё-ж таки братья идеологически когда-то единоутробные.

Сайбейз ASA к мелкософту не имеет отношения. Это ASE родственник мелкомягкому. ASE тоже вроде бы поддерживает много NULL-ов в UNIQUE полях.

А мне казалось, что в стандарте написано, что выражение NULL=NULL, также как NULL<>NULL ложно, и следовательно в уникальном столбце может быть сколько угодно пустых значений, если только это не первичный ключ. Где написано, то что Вы говорите?
...
Рейтинг: 0 / 0
UNIQUE в MS SQL и в ORACLE
    #33110927
Фотография www.fun4me.narod.ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
azhukovА мне казалось, что в стандарте написано, что выражение NULL=NULL, также как NULL<>NULL ложно, и следовательно в уникальном столбце может быть сколько угодно пустых значений, если только это не первичный ключ.

Ваше утверждение неверно, так уникальными, называются элементы, каждый из которых отличен от других. Если элементы несравнимы, то нельзя вести речь о том, что они уникальны. Они одинаковы.
...
Рейтинг: 0 / 0
UNIQUE в MS SQL и в ORACLE
    #33112291
Estets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
www.fun4me.narod.ruЕсли элементы несравнимы, то нельзя вести речь о том, что они уникальны. Они одинаковы.
Несколько спорное утверждение.
...
Рейтинг: 0 / 0
UNIQUE в MS SQL и в ORACLE
    #33112327
Фотография www.fun4me.narod.ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Estets www.fun4me.narod.ruЕсли элементы несравнимы, то нельзя вести речь о том, что они уникальны. Они одинаковы.
Несколько спорное утверждение.

И чем же отличается один NULL от другого?
Я не говорю о том, что два NULL равны. Но (NULL<>NULL) != true.

Уникальность - это не остутствие равенства. Это наличие отличий.
...
Рейтинг: 0 / 0
UNIQUE в MS SQL и в ORACLE
    #33112399
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может проголосуем? ))
Sybase,MS SQL,DB2 - на одной стороне
Oracle,PostgreSQL,MySQL - на другой

Как интересно у INFORMIX и как у INTERBASE?
...
Рейтинг: 0 / 0
UNIQUE в MS SQL и в ORACLE
    #33112519
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
azhukov
NULL=NULL, также как NULL<>NULL ложно

В Оракле (и я думаю не тока в нем) трехзначная логика. И, в частности, оба эти выражения не истинны и не ложны, а неизвестны (третье значение).
Сам Кодд был приверженцем четырехзначной. И четвертое значение интерпретировалось - не опреденлено.
И в таком аспектке можно считать, что NULL не противоречит термину уникальность. Там просто данных нет и потому операции сравнения бессмысленны. Можно тока проверить что значения нет (IS NULL).
...
Рейтинг: 0 / 0
UNIQUE в MS SQL и в ORACLE
    #33112537
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gardenmanможет проголосуем? ))
Sybase,MS SQL,DB2 - на одной стороне
Oracle,PostgreSQL,MySQL - на другой

Как интересно у INFORMIX и как у INTERBASE?
Sybase со всех сторон - ASE в лагерь MSSQL, ASA в лагерь Oracle :)
...
Рейтинг: 0 / 0
UNIQUE в MS SQL и в ORACLE
    #33112554
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASCRUS gardenmanможет проголосуем? ))
Sybase,MS SQL,DB2 - на одной стороне
Oracle,PostgreSQL,MySQL - на другой

Как интересно у INFORMIX и как у INTERBASE?
Sybase со всех сторон - ASE в лагерь MSSQL, ASA в лагерь Oracle :)

А Sybase IQ? посередине?
...
Рейтинг: 0 / 0
UNIQUE в MS SQL и в ORACLE
    #33112716
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gardenman ASCRUS gardenmanможет проголосуем? ))
Sybase,MS SQL,DB2 - на одной стороне
Oracle,PostgreSQL,MySQL - на другой

Как интересно у INFORMIX и как у INTERBASE?
Sybase со всех сторон - ASE в лагерь MSSQL, ASA в лагерь Oracle :)

А Sybase IQ? посередине?
Sybase IQ как и полагается аналитическому серваку естественно сверху
...
Рейтинг: 0 / 0
25 сообщений из 59, страница 1 из 3
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / UNIQUE в MS SQL и в ORACLE
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]