powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / UNIQUE в MS SQL и в ORACLE
59 сообщений из 59, показаны все 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
UNIQUE в MS SQL и в ORACLE
    #33112734
Фотография www.fun4me.narod.ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadiminfoТам просто данных нет и потому операции сравнения бессмысленны. Можно тока проверить что значения нет (IS NULL).

Ну вот есть один, допустим, у меня столбец. И в нём есть 819 строк. В каждой из строк нет значения. И в чём тут уникальность?
...
Рейтинг: 0 / 0
UNIQUE в MS SQL и в ORACLE
    #33112780
vybegallo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GoldХотя да, если об этом написано в документации, то это у MS фича...

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

Как интересно у INFORMIX и как у INTERBASE?

Informix на стороне стандарта - не более одного NULL значения. А IQ щас проверим... хм, IQ позволяет больше одного NULL.
...
Рейтинг: 0 / 0
UNIQUE в MS SQL и в ORACLE
    #33112865
vadiminfo все хорошо объяснил.
Если null интерпретировать как "значение пока не известно", то Oracle работает "правильно". Но поскольку такие значения в Oracle, похоже, все еще не индексируются (возможно именно поэтому он и допускает много null), он не может быстро найти соответствующие записи.
Если null интерпретировать как "значение равно пустоте", то MS SQL работает "правильно". Но тогда трудности с примером vadiminfo (1611329).
Попробуйте привести практический пример, когда null следует интерпретировать как "значение равно пустоте" при объявлении для атрибута unique.
А вот примеров с "значение пока не известно" (и, тем более, "не определено" - в случае "разреженных таблиц") - сколько угодно. Так что Oracle практически "правильнее", но отсутствие индекса по пустым значениям - жуткая убогость (если это все еще так)...
...
Рейтинг: 0 / 0
UNIQUE в MS SQL и в ORACLE
    #33112874
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
www.fun4me.narod.ru
Ну вот есть один, допустим, у меня столбец. И в нём есть 819 строк. В каждой из строк нет значения. И в чём тут уникальность?

В том, что нет дубликатов, например. Нет значений, потому они и не могут дублироваться.
Вопрос в том считать ли NULL значением. Но ведь это не значение? Это отсутствие значения. Причем не известна причина отсутствия. Могут быть, например причины: свойство не определено для данной записи, не известно на момент ввода, отсутствует на момент ввода. Следовательно, ничего нельзя сказать дублирует оно, одно из имеющихся или нет.
Просто ограничение целостности уникальность - не есть выделенный ключ (первичный или альтернативный). В обоих пустые значения должны быть запрещены. Или должно разрешаться только одно. Но тогда пустое значение трактуется как значение. Но это плохо согласуется с тем, что на самом деле реальное значение либо не известно, либо отсутствует. Поэтому, мне кажется, что уникальность значений должна распространяться именно на значения. А для решения вопросов с отсутствием значений должны быть другие средства. Например, их запрет или разрешение.
...
Рейтинг: 0 / 0
UNIQUE в MS SQL и в ORACLE
    #33112934
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В ASA сделано просто:
1. UNIQUE CONSTRAINT можно создавать только на NOT NULL поля
2. UNIQUE INDEX можно создавать на NULL поля (поведение как в Оракле)
3. Оптимизатор учитывает индексы с NULL полями
4. В CHECK CONSTRAINT выражение (Поле IN (1, 2, 3)) при поле со значением NULL вернет true

4 пункт самый веселый и самый злобный в отношении стандарта ANSI SQL. Но ... при использовании оказывается самый удобный. Действительно, если у меня NULL поле и я пишу на него проверку, то это уже означает, что к ней изначально подразумевается, что помимо перечисленных условий поле может содержать NULL. Соотвествующе вместо того, чтобы дописывать "OR Поле IS NULL" и увеличивать скрипт и работу сервера при проверках, здесь ввели сей возмутительный факт (Значение = NULL) = TRUE

P.S. Можно возмущаться сколько угодно, но лично мне поддержка NULL в UNIQUE INDEX и нарушение булевых операций с NULL в CHECK очень даже нравится, потому как помимо понятия "Правильно" есть еще понятия "Обоснованно" и "Удобно". Тем более, что если посмотреть на все существующие РСУБД и их "отклонения", сложно уже говорить о каких то стандартах, хотя каждый производитель и уверяет, что его РСУБД уж точно в полном обьеме поддерживает стандарты ANSI SQL таких то версий.
...
Рейтинг: 0 / 0
UNIQUE в MS SQL и в ORACLE
    #33112993
c127
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 azhukov

>и следовательно в уникальном столбце может быть сколько угодно пустых значений, если только это не первичный ключ.

Именно так и написано в стандарте, если я не ошибаюсь, но ссылки у меня нет.
...
Рейтинг: 0 / 0
UNIQUE в MS SQL и в ORACLE
    #33117008
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASCRUS
Sybase IQ как и полагается аналитическому серваку естественно сверху

Sybase IQ именно как "аналитический" сервак, действительно должен был бы быть сверху во всех позициях, но к сожалению, судя по тестам на производительность TPC-H ему больше наравится снизу...
...
Рейтинг: 0 / 0
UNIQUE в MS SQL и в ORACLE
    #33117101
Фотография Павел Воронцов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Весело у вас. )
...
Рейтинг: 0 / 0
UNIQUE в MS SQL и в ORACLE
    #33117375
alexey_tm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот слушаю вас и радуюсь, ну что вы пристали к unique? В Oracle действительно может быть несколько null в поле с наложенным ограничением уникальности, но если по данному полю будет обявлено огранчение целосности первичный ключь, то сразу включится not null. В стандарте явно ничего по поводу уникальных полей не прописано (в противном случае во всех СУБД это было бы реализованно одинаково), и если мне не изменяет память Кодд сам толком не мог обяснить, что с этими null делать. Каждая компания разрабатывающая СУБД в меру своих представлений и потребностей клиентов, реализует то, что не прописано в стандартах.
...
Рейтинг: 0 / 0
UNIQUE в MS SQL и в ORACLE
    #33117644
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посмотрим же наконец в стандарт. У меня есть только SQL 2002

SQL 2002
Код: plaintext
11.7 <unique constraint definition>
...
Код: plaintext
1.
2.
3.
4.
5.
6.
<unique constraint definition> ::=
<unique specification> <left paren> <unique column list> <right paren>
| UNIQUE ( VALUE )
<unique specification> ::=
UNIQUE
| PRIMARY KEY
<unique column list> ::= <column name list>
...
Syntax Rules
...
3) If <unique column list> UCL is specified, then
...
c) Case:
i) If the <unique specification> specifies PRIMARY KEY, then let SC be the <search
condition>:

Код: plaintext
1.
2.
UNIQUE ( SELECT UCL FROM TN )
AND
( UCL ) IS NOT NULL

ii) Otherwise, let SC be the <search condition>:

Код: plaintext
UNIQUE ( SELECT UCL FROM TN )

4) If UNIQUE (VALUE) is specified, then let SC be the <search condition>:

Код: plaintext
UNIQUE ( SELECT TN.* FROM TN )
...
General Rules
...
2) The unique constraint is not satisfied if and only if
Код: plaintext
EXISTS ( SELECT * FROM TN WHERE NOT ( SC ) )
is True

А что такое UNIQUE ? А вот:
SQL 2002
Код: plaintext
8.10 <unique predicate>
..
Код: plaintext
<unique predicate> ::= UNIQUE <table subquery>
...
General Rules
1) Let T be the result of the <table subquery>.
2) If there are no two rows in T such that the value of each column in one row is non-null and is not distinct from the value of the corresponding column in the other row, then the result of the <unique predicate> is True ; otherwise, the result of the <unique predicate> is False

Т.е. значения колонок не должны быть не NULL'ами и не различными, говоря по-русски - значения колонок должны быть или NULL'ами или отличаться, т.е. допускается неограниченное кол-во NULL'ов.

Вопросы ?
...
Рейтинг: 0 / 0
UNIQUE в MS SQL и в ORACLE
    #33118534
c127
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alexey_tmВ стандарте явно ничего по поводу уникальных полей не прописано (в противном случае во всех СУБД это было бы реализованно одинаково)

Добро пожаловать в реальный мир.

http://www.cse.iitb.ac.in/dbms/Data/Papers-Other/SQL1999/ansi-iso-9075-2-1999.pdf

разд. 4.17.2 "Table Constraints"

"A unique constraint is satisfied if and only if no two rows in a table have the same non-null values in the unique columns. In addition, if the unique constraint was defined with PRIMARY KEY, then it requires that none of the values in the specified column or columns be a null value."

Выделено мной.

Т.е. если значения null, то может повторяться сколько угодно.
...
Рейтинг: 0 / 0
UNIQUE в MS SQL и в ORACLE
    #33118537
c127
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 hvlad

Виноват, не заметил. Авторство не оспариваю.
...
Рейтинг: 0 / 0
UNIQUE в MS SQL и в ORACLE
    #33118550
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
c127Т.е. если значения null, то может повторяться сколько угодно.
Строго математически - из этого мало что следует. Допускается повторение null и это не нарушает стандарт; в то же время, как водится, и недопущение повторения null-ов его тоже не нарушает - во всяком случае я бегло не нашел фразы, и Вы такой вроде бы не привели. Реализовано решение, которое соответствует стандарту и накладывает дополнительное, не предусмотренное стандартом ограничение.

Практически - я бы сказал, требование уникальности null-ов оправдано, если применяется совместно со связкой по null-у - в смысле, если запрос вида

Код: plaintext
select * from a, b where a.id = b.id and a.id is null

способен вернуть непустой результат. Но это вроде бы уже явно нарушает стандарт и - по моему опыту - ведет к очень противным ошибкам.
...
Рейтинг: 0 / 0
UNIQUE в MS SQL и в ORACLE
    #33119677
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
c1272 hvlad

Виноват, не заметил. Авторство не оспариваю.Я тоже не оспариваю - оно у соотв. комитета ANSI
...
Рейтинг: 0 / 0
UNIQUE в MS SQL и в ORACLE
    #33119808
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 softwarer
c127Т.е. если значения null, то может повторяться сколько угодно.
Строго математически - из этого мало что следует. Допускается повторение null и это не нарушает стандарт; в то же время, как водится, и недопущение повторения null-ов его тоже не нарушает - во всяком случае я бегло не нашел фразы, и Вы такой вроде бы не привели.
По-моему в приведенной c127 цитате все совершенно однозначно.
Нет двух строк с одинаковыми ненулловыми значениями (в уникальных столбцах) -> уник констрейнт сатисфаед. И наоборот. По определению.
If and only if. Тогда и только тогда. Необходимо и достаточно.

Реализовано решение, которое соответствует стандарту
Не соответствует.
Нет двух строк с одинаковыми ненулловыми значениями, но тем не менее (по прихоти разработчика) уник констрейнт получился не сатисфаед.
Не выполняется один из двух if-ов в буквосочетании "if and only if"

и накладывает дополнительное, не предусмотренное стандартом ограничение.
И из всего этого получается некий (свой собственный) констрейнт. Но этот свой собственный констрейнт - это не Unique Constraint. По крайнем мере, не Unique Constraint в ANSI-шном понимании этого слова.
...
Рейтинг: 0 / 0
UNIQUE в MS SQL и в ORACLE
    #33120715
c127
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hvlad c1272 hvlad

Виноват, не заметил. Авторство не оспариваю.Я тоже не оспариваю - оно у соотв. комитета ANSI

Я не оспариваю авторства решения задачи. Приведя цитату из стандарта, Вы первым решили обсуждаемую задачу.
...
Рейтинг: 0 / 0
UNIQUE в MS SQL и в ORACLE
    #33121658
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛПИ из всего этого получается некий (свой собственный) констрейнт. Но этот свой собственный констрейнт - это не Unique Constraint. По крайнем мере, не Unique Constraint в ANSI-шном понимании этого слова.
Согласен.
...
Рейтинг: 0 / 0
UNIQUE в MS SQL и в ORACLE
    #33378688
Фотография Dreamy_Helga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladПосмотрим же наконец в стандарт. У меня есть только SQL 2002
Вопросы ?

Какие вопросы? Микрософт - козлы.
Извините, что поздно присоединилась. Искала ответ на свое недоумение, нашла и ... не могу прийти в себя. Вот моя маленькая история.
Сменила работу. Как следствие, сменила oracle на ms sql server. Перед проектированием бд прочилата(!!!! решила в кои-то веки документацию почитать :-#) ОФИЦИАЛЬНУЮ документацию к учебному курсу "Проектирование и реализация баз данных MS SQL Sqerver 2000"

Цитирую:

Ограничения UNIQUE разрешается определить для столбцов, допускающих пустые значения (NULL)...
... SQL Server 2000 проверяет имеющиеся в столбцах данные, чтобы гарантировать уникальность ВСЕХ значений, КРОМЕ пустых.

И вот бд спроектирована, тестирую...

Добро пожаловать в реальный мир! Микрософт - ... нет слов, одни нецензурные выражения.
...
Рейтинг: 0 / 0
UNIQUE в MS SQL и в ORACLE
    #33379365
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dreamy_Helga hvladПосмотрим же наконец в стандарт. У меня есть только SQL 2002
Вопросы ?

Какие вопросы? Микрософт - козлы.
Извините, что поздно присоединилась. Искала ответ на свое недоумение, нашла и ... не могу прийти в себя. Вот моя маленькая история.
Сменила работу./.
Хотите угадаю Вашу реакцию в первый рабочий день на новом месте?
"Прихожу я на работу - сидят одни козлы"

Девушка, ну что же Вы первое своё сообщение начинаете с ругани?
...
Рейтинг: 0 / 0
UNIQUE в MS SQL и в ORACLE
    #33380591
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dreamy_HelgaОФИЦИАЛЬНУЮ документацию к учебному курсу "Проектирование и реализация баз данных MS SQL Sqerver 2000"

А надо все-таки было BOL читать:

Also, unlike PRIMARY KEY constraints, UNIQUE constraints allow the value NULL . However , as with any value participating in a UNIQUE constraint, only one NULL value is allowed per column .
...
Рейтинг: 0 / 0
UNIQUE в MS SQL и в ORACLE
    #33404121
Фотография Dreamy_Helga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pkarklin Dreamy_HelgaОФИЦИАЛЬНУЮ документацию к учебному курсу "Проектирование и реализация баз данных MS SQL Sqerver 2000"

А надо все-таки было BOL читать:

Also, unlike PRIMARY KEY constraints, UNIQUE constraints allow the value NULL . However , as with any value participating in a UNIQUE constraint, only one NULL value is allowed per column .

ок, так и сделаю (и сразу проверять - на всяк случай)
...
Рейтинг: 0 / 0
UNIQUE в MS SQL и в ORACLE
    #33404243
Фотография segun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dreamy_Helga pkarklin Dreamy_HelgaОФИЦИАЛЬНУЮ документацию к учебному курсу "Проектирование и реализация баз данных MS SQL Sqerver 2000"

А надо все-таки было BOL читать:

Also, unlike PRIMARY KEY constraints, UNIQUE constraints allow the value NULL . However , as with any value participating in a UNIQUE constraint, only one NULL value is allowed per column .

ок, так и сделаю (и сразу проверять - на всяк случай)все проверять нужно в любом случае, и неважно какой продукт. А то что MS SQL отличается от Oracle и наоборот - так это давно известный факт. Удивительно что вы думали работать с MSSQL как с Oracle.
...
Рейтинг: 0 / 0
UNIQUE в MS SQL и в ORACLE
    #33404717
c127
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
segunвсе проверять нужно в любом случае, и неважно какой продукт. А то что MS SQL отличается от Oracle и наоборот - так это давно известный факт. Удивительно что вы думали работать с MSSQL как с Oracle.

В том то и дело, что в не-мелкософтовских продуктах ВСЕ проверять как раз не нужно, оно работает как написано в документации. Это у серьезных производителей, не обязательно больших и не обязательно платных. Поработав с мелкософтом и привыкнув к необходимости все проверять, переходишь потом на другой продукт и не устаешь удивляться, когда все пишешь по документации и оно сразу работает.
...
Рейтинг: 0 / 0
UNIQUE в MS SQL и в ORACLE
    #33404871
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
c127В том то и дело, что в не-мелкософтовских продуктах ВСЕ проверять как раз не нужно, оно работает как написано в документации.

Ой, я Вас умоляю... Metalink по объемам ни чуть не меньше MSKB. И то что безбажных продуктов не бывает сие есть факт
...
Рейтинг: 0 / 0
UNIQUE в MS SQL и в ORACLE
    #33406179
4321
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pkarklin Ой, я Вас умоляю... Metalink по объемам ни чуть не меньше MSKB. И то что безбажных продуктов не бывает сие есть фактгыгыгы. праблема та не фтом, шо бумага кривая, а фтом, шо в бумаге "как должно быть" (по стандарту) а по фахту -"как есь" - т.е. криво. Т.е. вруть не без умысла, а в маркетинговых целлях. А фсе туть сразу деушек пинать. Мелко, гс-да, мелл ко. И мяхкавата.
...
Рейтинг: 0 / 0
UNIQUE в MS SQL и в ORACLE
    #33406282
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
4321гыгыгы. праблема та не фтом, шо бумага кривая, а фтом, шо в бумаге "как должно быть" (по стандарту) а по фахту -"как есь" - т.е. криво.Т.е. вруть не без умысла, а в маркетинговых целлях.

Эээ... Жду от Вас и от с127 цитат из BOL, где описано одно и сказано, что это по стандарту, а на самом деле не так! Особенно, когда это приподносится в "маркетинговых целлях"!
...
Рейтинг: 0 / 0
UNIQUE в MS SQL и в ORACLE
    #33406314
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сорри, не дописал. С учетом того, что:

The Microsoft® SQL Server™ 2000 Transact-SQL version complies with the Entry level of the SQL-92 standard , and supports many additional features from the Intermediate and Full levels of the standard.

А support for the UNIQUE predicate - это Intermediate level. Так что лично я не вижу здесь нарушения стандарта. ;) Причем, о том, как отличается UNIQUE в MS SQL, от SQL-92 Intermediate level указано таки в документации.
...
Рейтинг: 0 / 0
UNIQUE в MS SQL и в ORACLE
    #33406614
4321
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pkarklin лично я не вижу здесь нарушения стандарта.
pkarklin о том, как отличается UNIQUE в MS SQL, от SQL-92 Intermediate level указано таки в документации. радд завас.

И пошто деушек шпыниаите?
...
Рейтинг: 0 / 0
UNIQUE в MS SQL и в ORACLE
    #33406657
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
4321 pkarklin лично я не вижу здесь нарушения стандарта.
pkarklin о том, как отличается UNIQUE в MS SQL, от SQL-92 Intermediate level указано таки в документации. радд завас.

И пошто деушек шпыниаите?

Я бы согласился с Вашим хохотом, если бы в документации по сиквел серверу было бы упомянуто о том, что он complies with the Intermediate level of the SQL-92 standard. А так - это просто детали реализации, которые не complies with SQL-92. ;)

На счет девушек... Ничего личного... :)
...
Рейтинг: 0 / 0
UNIQUE в MS SQL и в ORACLE
    #33407022
Yo!!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pkarklin
Я бы согласился с Вашим хохотом, если бы в документации по сиквел серверу было бы упомянуто о том, что он complies with the Intermediate level of the SQL-92 standard. А так - это просто детали реализации, которые не complies with SQL-92. ;)


да entry level это большое достижение :)

дока от MySql 4.0
1.8.1 What Standards MySQL Follows

Entry-level SQL-92. ODBC levels 0-3.51.
...
Рейтинг: 0 / 0
UNIQUE в MS SQL и в ORACLE
    #33407461
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo!!да entry level это большое достижение :)

Не... Большое достижение это: supports many additional features from the Intermediate and Full levels of the standard . ;)
...
Рейтинг: 0 / 0
UNIQUE в MS SQL и в ORACLE
    #33407703
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pkarklin Yo!!да entry level это большое достижение :)

Не... Большое достижение это: supports many additional features from the Intermediate and Full levels of the standard . ;)

Ага, до 60% у 30% женщин :o)
...
Рейтинг: 0 / 0
UNIQUE в MS SQL и в ORACLE
    #33407743
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gluk (Kazan) pkarklin Yo!!да entry level это большое достижение :)

Не... Большое достижение это: supports many additional features from the Intermediate and Full levels of the standard . ;)

Ага, до 60% у 30% женщин :o)

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


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