我有以下表格:
CREATE TABLE IF NOT EXISTS书籍(book_id varchar(50)NOT NULL,book_title varchar(50)NOT NULL,courseid varchar(50)NOT NULL,FOREIGN KEY('courseid')REFERENCES'course'('course_id')ON DELETE CASCADE)ENGINE = InnoDB DEFAULT CHARSET = latin1; CREATE TABLE IF NOT EXISTS course(course_id varchar(50)NOT NULL,year varchar(50)NOT NULL,section varchar(50)NOT NULL,PRIMARY KEY(course_id))ENGINE = InnoDB DEFAULT CHARSET = latin1;
我想在courseid(在books表下)引用一个引用course_id(在课程表下)的外键,但是收到以下错误消息:
**#1064 - 您的SQL语法出错;查看与您的MySQL服务器版本对应的手册,以便在''courseid'附近使用正确的语法 . )REFERENCES'course'('course_id')
)发动机=第15行的InnoDB DEFAULT CHARS'**
我厌倦了几种声明外键的语法(使用CONSTRAINT FOREIGN KEY,有/没有引号等)但没有用 .
我正在使用Xamp WITH Server版本:5.5.32 - MySQL社区服务器(GPL) .
有人可以帮我解决这个问题吗?
谢谢
2 回答
使用back-ticks`而不是单引号也先创建课程表然后创建books表,以便books表能够指向课程表
See fiddle demo
简单地说:
your code:
change:
你必须创建 primary key table of course(course_id) 然后才应该创建引用 foreign key table of books(courseid) .