2013-04-08 3 views
0

Я пытаюсь создать таблицу users однако я получаю сообщение об ошибке «Невозможно создать таблицу» при запуске запроса с помощью MySQL Workbench, а также PHPMyAdmin. Я, кажется, получаю ошибку о том, где он говорит:Я не могу создать таблицу в MySQL (ошибка 1005)

магазин VARCHAR (5),

CREATE TABLE store 
(
    id   INT     NOT NULL AUTO_INCREMENT, 
    short_name VARCHAR(5)      NOT NULL, 
    name  VARCHAR(30)      NOT NULL, 
    address1 VARCHAR(50)      NOT NULL, 
    address2 VARCHAR(20), 
    city  VARCHAR(30)      NOT NULL, 
    state  VARCHAR(30)      NOT NULL, 
    zip   VARCHAR(10)      NOT NULL, 
    phone  VARCHAR(15)      NOT NULL, 
    CONSTRAINT store_pk PRIMARY KEY (id) 
); 

CREATE TABLE users 
(
    id   INT      NOT NULL AUTO_INCREMENT, 
    fname  VARCHAR(35)      NOT NULL, 
    lname  VARCHAR(35)      NOT NULL, 
    password VARCHAR(60),   
    address1 VARCHAR(50)      NOT NULL, 
    address2 VARCHAR(20), 
    city  VARCHAR(30)      NOT NULL, 
    state  VARCHAR(30)      NOT NULL, 
    zip   VARCHAR(10)      NOT NULL, 
    phone  VARCHAR(15), 
    email  VARCHAR(90), 
    store  VARCHAR(5), 
    admin  TINYINT    DEFAULT 0 NOT NULL, 
    mail_list TINYINT    DEFAULT 0 NOT NULL, 
    active  TINYINT    DEFAULT 0 NOT NULL, 
    CONSTRAINT users_pk PRIMARY KEY (id), 
    CONSTRAINT users_fk FOREIGN KEY (store) 
     REFERENCES store (short_name) 
     ON DELETE SET NULL 
     ON UPDATE CASCADE 
); 

В таблице магазин успешно добавлен. Только когда я пытаюсь создать таблицу users, я получаю ошибки.

+0

Какое сообщение об ошибке? – Barmar

ответ

2

Столбец, имеющий ссылку на внешний ключ, должен быть проиндексирован. Поэтому вам нужно добавить индекс на store.short_name, чтобы он мог ссылаться на внешний ключ users_fk.

Смежные вопросы