0

テーブルを作成しようとしてusersいますが、MySQL Workbench および PHPMyAdmin でクエリを実行すると、「テーブルを作成できません」というエラーが表示されます。私はそれが言う場所でエラーが発生しているようです:

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 テーブルを作成しようとしたときだけです。

4

1 に答える 1

2

外部キーで参照される列にはインデックスを付ける必要があります。そのため、インデックスを追加して、外部キーstore.short_nameで参照できるようにする必要があります。users_fk

于 2013-04-08T19:02:50.083 に答える