Создание внешних ключей в MySQL

Я пытаюсь связать две таблицы вместе через внешний ключ в MySQL. Таблица CLIENTS должна быть связана с другой таблицей (BIDS) с атрибутом Client ID.

CREATE TABLE CLIENTS (
CLIENTID            NUMERIC(3) NOT NULL,
FOREIGN KEY(CLIENTID) REFERENCES BIDS(CLIENTID),
PRIMARY KEY(CLIENTID, EMAILADDRESSES,PHONENUMBERS,CONTACTS)
);

Однако MySQL возвращает эту ошибку, когда я пытаюсь выполнить код.

# 1005 — Невозможно создать таблицу «КЛИЕНТЫ» (ошибка: 150)

Кажется, это не синтаксическая ошибка, поэтому кто-нибудь знает, что является причиной проблемы или как я могу ее исправить?

0

Решение

При создании таблицы с первичным ключом с использованием нескольких столбцов они должны быть указаны в запросе —

CREATE TABLE CLIENTS (
CLIENTID NUMERIC(3) NOT NULL,
EMAILADDRESSES CHAR(64),
PHONENUMBERS VARCHAR(16),
CONTACTS VARCHAR(32),
FOREIGN KEY(CLIENTID) REFERENCES BIDS(CLIENTID),
CONSTRAINT key_name PRIMARY KEY(CLIENTID, EMAILADDRESSES,PHONENUMBERS,CONTACTS)
);

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

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector