外键约束帮助mysql

zwghvu4y  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(378)

我正在复习mysql,并在创建表时编写外键。但是,当我创建外键时,我收到一个语法错误。

CREATE TABLE IF NOT EXISTS staff (
    staff_id INT(5) NOT NULL,
    staff_first_name VARCHAR(20) NOT NULL,
    staff_last_name VARCHAR(20) NOT NULL,
    staff_phone_number VARCHAR(15) NOT NULL,
    staff_email_address VARCHAR(30) NOT NULL,
    CONSTRAINT staff_id_pk PRIMARY KEY (staff_id)
    CONSTRAINT staff_id_fk FOREIGN KEY (staff_id)
    REFERENCES computer_staff (staff_id)
);

有人能看出我做错了什么吗?
编辑:
我收到的错误报告如下:
19:35:55约束staff\u id\u fk外键(staff\u id),引用计算机\u staff(staff\u id))错误代码:1064。sql语法有错误;请查看与您的mysql服务器版本对应的手册,以获取使用“constraint staff\u id\u fk foreign key(staff\u id)”附近的正确语法,参考第10.00025行的computer\u staff(staff\u id)
更新:错误代码:1215。无法添加外键约束0.110秒
如何解决错误代码1215??

1u4esq0p

1u4esq0p1#

尝试此代码

CREATE TABLE IF NOT EXISTS staff (
staff_id INT(5) NOT NULL,
staff_first_name VARCHAR(20) NOT NULL,
staff_last_name VARCHAR(20) NOT NULL,
staff_phone_number VARCHAR(15) NOT NULL,
staff_email_address VARCHAR(30) NOT NULL,
Foregn_Key int,
CONSTRAINT staff_id_pk PRIMARY KEY (staff_id),
CONSTRAINT staff_id_fk FOREIGN KEY (Foregn_Key)
REFERENCES computer_staff (Foregn_Key)
);
vql8enpb

vql8enpb2#

缺少逗号:

CREATE TABLE IF NOT EXISTS staff (
    staff_id INT(5) NOT NULL,
    staff_first_name VARCHAR(20) NOT NULL,
    staff_last_name VARCHAR(20) NOT NULL,
    staff_phone_number VARCHAR(15) NOT NULL,
    staff_email_address VARCHAR(30) NOT NULL,
    CONSTRAINT staff_id_pk PRIMARY KEY (staff_id), -- here
    CONSTRAINT staff_id_fk FOREIGN KEY (staff_id)
    REFERENCES computer_staff (staff_id)
);

相关问题