如何使用引用在mysql中编写级联查询
这是我的问题。但它不起作用。 它显示此错误: 1064-您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以了解第23行附近要使用的正确语法 查询:如何使用引用在mysql中编写级联查询,mysql,sql,Mysql,Sql,这是我的问题。但它不起作用。 它显示此错误: 1064-您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以了解第23行附近要使用的正确语法 查询: CREATE TABLE tbl_student ( studentrollno INT(11), studentname VARCHAR(255), studentpassword VARCHAR(255), studentslug VARCHAR
CREATE TABLE tbl_student
(
studentrollno INT(11),
studentname VARCHAR(255),
studentpassword VARCHAR(255),
studentslug VARCHAR(300),
studentstatus VARCHAR(255),
degreetitle VARCHAR(100),
batchtitle VARCHAR(100),
batchautomationno VARCHAR(100),
PRIMARY KEY (studentrollno),
FOREIGN KEY (degreetitle) REFERENCES tbl_batch(degreetitle)
ON DELETE CASCADE ON UPDATE CASCADE,
FOREIGN KEY (batchtitle) REFERENCES tbl_batch(batchtitle)
ON DELETE CASCADE ON UPDATE CASCADE,
FOREIGN KEY (batchautomationno) REFERENCES tbl_batch(batchautomationno)
ON DELETE CASCADE ON UPDATE CASCADE,
)
这是我的配料表
CREATE TABLE tbl_batch (
degreeTitle varchar(100),
batchTitle varchar(100),
batchAutomationNo varchar(100),
batchSlug varchar(255),
batchStatus int(1),
PRIMARY KEY (degreeTitle, batchTitle, batchAutomationNo),
FOREIGN KEY (degreeTitle)
REFERENCES tbl_degree(degreeTitle)
ON DELETE CASCADE
ON UPDATE CASCADE
) ENGINE=InnoDB;
在批处理表中。。batchTitle、degreeTitle、batchAutomationNo是主键
您可以将复合外键映射到父复合主键
CREATE TABLE tbl_student
(
studentrollno INT(11),
studentname VARCHAR(255),
studentpassword VARCHAR(255),
studentslug VARCHAR(300),
studentstatus VARCHAR(255),
degreetitle VARCHAR(100),
batchtitle VARCHAR(100),
batchautomationno VARCHAR(100),
PRIMARY KEY (studentrollno),
FOREIGN KEY (degreeTitle, batchTitle, batchAutomationNo)
REFERENCES tbl_batch(degreeTitle, batchTitle, batchAutomationNo)
ON DELETE CASCADE ON UPDATE CASCADE
);
删除最后一个逗号这是真正的错误,无法添加外键约束,您需要使用所引用的表定义更新问题使用所有表定义更新问题。我们需要tbl_批定义。您有3个外键指向同一个表,而该表有3个主键?我不是DBA,但这不是毫无意义的吗?我不知道,可能是不允许的?谢谢。它正在工作。请始终注意,要定义单个FK,还应具有单个父键。