powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / null значения в unique constraint
12 сообщений из 12, страница 1 из 1
null значения в unique constraint
    #33748050
Владислав Ромащенко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASE 12.5.0
есть unique constraint на поле типа varchar. по умолчанию null. при попытке вставить вторую запись с null в это поле дает Attempt to insert duplicate key row.. хотя в доке пишут, что "..две строки не могут содержать одинаковое значение, не равное NULL"
...
Рейтинг: 0 / 0
null значения в unique constraint
    #33749041
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В какой это книжке такое пишут ? Нельзя вставить две строки с NULL. Для индекса NULL - такое же значение и NULL<>NULL здесь не работает, в отличие например от ORACLE, где все наоборот и две одинаковые записи вставить можно.
...
Рейтинг: 0 / 0
null значения в unique constraint
    #33749105
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivВ какой это книжке такое пишут ? Нельзя вставить две строки с NULL. Для индекса NULL - такое же значение и NULL<>NULL здесь не работает, в отличие например от ORACLE, где все наоборот и две одинаковые записи вставить можно.
Почему в Оракле - в ASA тоже можно делать уникальные индексы на NULL поля и вставлять туда сколько угодно записей с NULL и уникальные NOT NULL (в отличие от UNIQUE CONSTRAINT, которые не могут содержать в себе NULL полей). Очень удобно и правильно с моей точки зрения.

--
www.rusug.ru - портал русскоязычной группы пользователей Sybase
...
Рейтинг: 0 / 0
null значения в unique constraint
    #33749170
Владислав Ромащенко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivВ какой это книжке такое пишут ? Нельзя вставить две строки с NULL. Для индекса NULL - такое же значение и NULL<>NULL здесь не работает, в отличие например от ORACLE, где все наоборот и две одинаковые записи вставить можно.

Книжка называется "Sybase ASE Справочное рук-во. Том 2. Глава Команды Стр.22 (в pdf с сайта sybase.ru)". Описание Alter table
...
Рейтинг: 0 / 0
null значения в unique constraint
    #33750248
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А прямую цитату не могли бы дать , где указывалось бы, что это должно работать так ? Насколько я помню, в документации вообще про это ничего не было, ни за, ни против.
...
Рейтинг: 0 / 0
null значения в unique constraint
    #33750409
Владислав Ромащенко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivА прямую цитату не могли бы дать , где указывалось бы, что это должно работать так ? Насколько я помню, в документации вообще про это ничего не было, ни за, ни против.
вот она (описание параметров команды Alter table)
unique
Ограничивает значения в указанном столбце или столбцах таким образом, что две строки не могут содержать одинаковое значение, не равное NULL. Это ограничение создает уникальный индекс, удалить который можно только путем удаления ограничения. Нельзя использовать этот параметр с параметром null, описанным выше.
...
Рейтинг: 0 / 0
null значения в unique constraint
    #33750443
TIB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Читаем доку:

ASA SQL Reference>SQL Statements>CREATE TABLE statement

UNIQUE Identifies one or more columns that uniquely identify each row in the table. No two rows in the table can have the same values in all the named column(s). A table may have more than one unique constraint.

There is a difference between a unique constraint and a unique index. Columns of a unique index are allowed to be NULL, while columns in a unique constraint are not . A foreign key can reference either a primary key or a column with a unique constraint, but not a unique index, because it can include multiple instances of NULL .
...
Рейтинг: 0 / 0
null значения в unique constraint
    #33750513
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Фигня какая-то, наверное, издержки перевода.
...
Рейтинг: 0 / 0
null значения в unique constraint
    #33750521
Владислав Ромащенко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TIBЧитаем доку:

ASA SQL Reference>SQL Statements>CREATE TABLE statement

UNIQUE Identifies one or more columns that uniquely identify each row in the table. No two rows in the table can have the same values in all the named column(s). A table may have more than one unique constraint.

There is a difference between a unique constraint and a unique index. Columns of a unique index are allowed to be NULL, while columns in a unique constraint are not . A foreign key can reference either a primary key or a column with a unique constraint, but not a unique index, because it can include multiple instances of NULL .
К сожалению, create unique index дает тотже результат, что и constraint

create unique index IN_ROMA on roma (romadata)
go
insert into roma values (2,null)

Server Message: Number 2601, Severity 14
Line 1:
Attempt to insert duplicate key row in object 'roma' with unique index 'IN_ROMA'
Server Message: Number 3621, Severity 10
Line 1:
Command has been aborted.
...
Рейтинг: 0 / 0
null значения в unique constraint
    #33750525
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TIBЧитаем доку:

ASA SQL Reference

Про ASE речь идет.
...
Рейтинг: 0 / 0
null значения в unique constraint
    #33750565
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет, что интересно и в English version

unique

constrains the values in the indicated column or columns so that no two rows can have the same non-null value. This constraint creates a unique index that can be dropped only if the constraint is dropped. You cannot use this option along with the null option described above.

Ну не важно, значит неправильно написали. Короче, в ASE это не работает, и любой NULL рассматривается как еще одно значение, и в индексах NULL == NULL.
...
Рейтинг: 0 / 0
null значения в unique constraint
    #33750637
Владислав Ромащенко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivНет, что интересно и в English version

unique

constrains the values in the indicated column or columns so that no two rows can have the same non-null value. This constraint creates a unique index that can be dropped only if the constraint is dropped. You cannot use this option along with the null option described above.

Ну не важно, значит неправильно написали. Короче, в ASE это не работает, и любой NULL рассматривается как еще одно значение, и в индексах NULL == NULL.

:((
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / null значения в unique constraint
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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