/ / Може ли да имаме повече от една колона за идентичност в таблицата? - sql

Може ли да имаме повече от една колона за идентичност в таблицата? - sql

Можем ли да посочим 2 колона за идентичност в таблица.Ако не е така? ако да, защо

Отговори:

1 за отговор № 1

"колоната за идентичност" не е SQL концепция. Трябва да имате предвид някаква конкретна реализация със свои собствени quirks и разширение, не SQL като цяло, както твърди вашият маркер; моля, редактирайте и маркирайте отново въпроса си. (Ако ви се случи да кажа "Microsoft SQL Server", отговорът е "не, защото мислех, че Microsoft нямаше смисъл [и, след като вече са били дяволски прав -)]").


1 за отговор № 2

Зависи какво имате предвид под "идентичност"

Има няколко специфични за изпълнениетоконструкти като "rowid" "oid" и т.н., чиято цел е уникалната идентификация на ред, използващ стойност, генерирана от DBMS - в повечето системи dbms имате само един от тях на ред.

"Идентичността" на ред може да означава ипървичен ключ. ANSI sql поддържа първични ключове, състоящи се от много колони, в повечето DBMSes можете да включите някоя или всички подходящи колони в първичния ключ. Идентичността тогава се състои от комбинацията от всички колони в първичния ключ - но това е голямо, но логично това все още представлява една единствена идентичност.

Можете да зададете "уникално" ограничение *** s ***всяка една или всички подходящи колони, всеки от които може да се счита за "самоличност" сама по себе си, така че отговорът на вашия въпрос вероятно е "Да" - но никога не съм виждал реалния живот на това.


0 за отговор № 3

Точките на други хора относно "идентичността", които не са тип в SQL стандарта, са верни.

Поддържа се IBM Informix Dynamic Server (IDS)типове SERIAL, SERIAL8 и BIGSERIAL. Това са цели числа с допълнителните свойства, които ако вмъкнете нула в тях (или ако не посочите стойност, която да се вмъкне), тогава се използва следващата по-рано неизползвана стойност. Това съвпада свободно с това, което други СУБД се наричат ​​колона за самоличност. (IDS също така осигурява последователности.)

Едно любопитство е, че ви е позволеноима както колона SERIAL, така и колона SERIAL8 или BIGSERIAL в една таблица. Това не се препоръчва и не е разумно; обаче не е забранено.

Повечето СУБД не позволяват две отделни "идентификационни" колони в една таблица.