/ / ERROR 1064 (42000) ПОСИЛАННЯ ПЕРШОГО КЛЮЧУ MySQL - mysql, reference, key

ПОМИЛКА 1064 (42000) MySQL ОСНОВНІ КЛЮЧОВІ СПИСКИ - mysql, reference, key

Я ніколи раніше не використовував MySQL, але не маю вибору цього разу. Я помилку, яку я не розумію. Я намагаюся створити таблицю:

CREATE TABLE proprietaire(
num_cpt INT REFERENCES compte(num_cpt) PRIMARY KEY,
num_client INT REFERENCES client(num_client),
num_commercant INT REFERENCES commercant(num_commercant)
);

Я не можу бачити свою помилку. Не могли б ви допомогти мені з цим?

Дякую

Відповіді:

1 для відповіді № 1

У MySQL, щоб примусити посилання на зовнішні ключі, ви не можете поставити references в якості модифікатора на колонці. Для них потрібен окремий обмеження:

CREATE TABLE proprietaire (
num_cpt INT  PRIMARY KEY,
num_client INT,
num_commercant INT,
CONSTRAINT fk_num_cpt FOREIGN KEY REFERENCES compte(num_cpt),
CONSTRAINT fk_num_client FOREIGN KEY REFERENCES client(num_client),
CONSTRAINT fk_num_commercant FOREIGN KEY REFERENCES commercant(num_commercant)
);

Проте Вашою конкретною проблемою було REFERENCES перед PRIMARY KEY обмеження

Як примітка: у більшості англомовних баз даних, ваше використання num був би id. num звучить як кількість або "кількість" чогось, тоді як id є коротким для ідентифікатора.