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

Я пытаюсь создать базу данных в MySQL на phpMyAdmin. Я могу создавать таблицы без каких-либо проблем, но я также хочу добавить некоторые внешние ключи. В этом случае я хочу связать таблицы BIDS и CLIENTS через атрибут CLIENTID.

CREATE TABLE BIDS (
BIDID               NUMERIC(3) NOT NULL PRIMARY KEY,
CLIENTID            NUMERIC(3) NOT NULL
);

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

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

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

0

Решение

Синтаксис в порядке, но проблема с FORIEGN KEY утверждение как ниже. Вы не можете создать FK для неключевого столбца. В BIDS стол это BIDID который определяется как Primary Key и не CLIENTID

FOREIGN KEY (CLIENTID) REFERENCES BIDS (CLIENTID)

Так что ваши FORIEGN KEY определение должно быть на самом деле

FOREIGN KEY (CLIENTID) REFERENCES BIDS (BIDID)

Посмотреть демо здесь http://sqlfiddle.com/#!2/f1c9ec

1

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

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

По вопросам рекламы [email protected]