powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / REFERENCES и primary key
6 сообщений из 6, страница 1 из 1
REFERENCES и primary key
    #39274608
hasbag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Читаю книгу Алана Бьюли и в его примерах он первичный ключ указывает так:

Код: sql
1.
CONSTRAINT pk_person PRIMARY KEY (person_id)



Но я видел много примеров в интернете, где это делается просто дописыванием "PRIMARY KEY" в описании нужного столбца. В чем разница? Если её нет, то почему все так сложно в этой книге или может она староватая(2007)?

И подскажите что точно делает эта строка:

Код: sql
1.
REFERENCES person (person_id)



Что в данном примере оно значит?

Код: sql
1.
2.
3.
4.
5.
CREATE TABLE Customers 
          ( cnum   INTEGER NOT NULL PRIMARY KEY, 
            cname  CHAR(10), 
            city   CHAR(10), 
            snum   INTEGER REFERENCES Salespeople (snum));


Help please
...
Рейтинг: 0 / 0
REFERENCES и primary key
    #39274714
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это внешние "связи", внешние ключи
см. в документации
...
Рейтинг: 0 / 0
REFERENCES и primary key
    #39274747
hasbag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alex_Ustinov, это вы о refference? А что на счет первичного ключа? Ссылка битая.
...
Рейтинг: 0 / 0
REFERENCES и primary key
    #39274969
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hasbagЧитаю книгу Алана Бьюли и в его примерах он первичный ключ указывает так:

Код: sql
1.
CONSTRAINT pk_person PRIMARY KEY (person_id)



Но я видел много примеров в интернете, где это делается просто дописыванием "PRIMARY KEY" в описании нужного столбца. В чем разница? Если её нет, то почему все так сложно в этой книге или может она староватая(2007)?



Есть две формы синтаксиса констрейнтов, отдельностоящая и встроенная (inline) в определение поля (колонки).
Естественно, встроенной нельзя определять составные констрейнты, на более чем одно поле.
Кроме этого, полная форма может содержать больше информации, в частности, может задавать имя констрейнта,
что для хорошего дизайна является обязательным (иначе констрейнт не удалить, не указать в хинтах и пр.), а также позволяет задавать всяческие физические характеристики реализации констрейнта.

Встроенная форма имеет право на жизнь (я так считаю) только в примерах и каких-то несложных тестовых проектах.
Промышленный дизайн должен вестись с помощью выделенных форм констрейнтов.
Как правило, лучше констрейнты выделять даже в отдельный скрипт, заливающийся после заливки в таблицы данных (но это в нормальных СУБД, а не в mySQL).

hasbagИ подскажите что точно делает эта строка:

Код: sql
1.
REFERENCES person (person_id)



Что в данном примере оно значит?

Код: sql
1.
2.
3.
4.
5.
CREATE TABLE Customers 
          ( cnum   INTEGER NOT NULL PRIMARY KEY, 
            cname  CHAR(10), 
            city   CHAR(10), 
            snum   INTEGER REFERENCES Salespeople (snum));


Help please

Это встроенная форма FOREIGN KEY , поле snum ссылается на таблицу Salespeople, поле snum.
В принципе, указание поля тоже можно опускать, будет ссылка на PK таблицы, что в 99% случаев и используется.
...
Рейтинг: 0 / 0
REFERENCES и primary key
    #39274998
hasbag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZiv, спасибо большое за подробное описание, теперь стало понятно.
...
Рейтинг: 0 / 0
REFERENCES и primary key
    #39275012
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hasbagAlex_Ustinov, это вы о refference? А что на счет первичного ключа? Ссылка битая.за ссылку каюсь, что то без домена перенеслось в форумном движке ) документация
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / REFERENCES и primary key
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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