我对所有这些都很陌生,而且我很难发现语法中的错误是用于创建sql表的地方,我们非常感谢任何支持:
我收到的错误是:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')
REFERENCES ims.orders ()
ON DELETE CASCADE
ON UPDATE CASCADE,
CO' at line 8
它来自于运行以下代码片段:
CREATE TABLE IF NOT EXISTS `ims`.`orderline` (
`olid` INT NOT NULL AUTO_INCREMENT,
`oid` INT NOT NULL,
`iid` INT NOT NULL,
`quantity` INT NOT NULL,
PRIMARY KEY (`olid`),
CONSTRAINT `oid`
FOREIGN KEY ()
REFERENCES ims.orders ()
ON DELETE CASCADE
ON UPDATE CASCADE,
CONSTRAINT `iid`
FOREIGN KEY ()
REFERENCES ims.items ()
ON DELETE CASCADE
ON UPDATE CASCADE
);
从使用此架构创建的数据库中:
drop schema ims;
CREATE SCHEMA IF NOT EXISTS `ims`;
USE `ims` ;
CREATE TABLE IF NOT EXISTS `ims`.`customers` (
`cid` INT(11) NOT NULL AUTO_INCREMENT,
`first_name` VARCHAR(40) NULL DEFAULT NULL,
`surname` VARCHAR(40) NULL DEFAULT NULL,
PRIMARY KEY (`cid`)
);
CREATE TABLE IF NOT EXISTS `ims`.`items` (
`iid` INT(11) NOT NULL AUTO_INCREMENT,
`name` VARCHAR(40) NULL DEFAULT NULL,
`price` DECIMAL(10,2) NOT NULL,
PRIMARY KEY (`iid`)
);
CREATE TABLE IF NOT EXISTS `ims`.`orders` (
`oid` INT(11) NOT NULL AUTO_INCREMENT,
`cid`INT(11) NOT NULL,
FOREIGN KEY (cid) REFERENCES ims.customers (cid)
ON DELETE CASCADE
ON UPDATE CASCADE,
PRIMARY KEY (`oid`)
);
发布于 2020-09-15 13:58:51
CREATE TABLE IF NOT EXISTS `ims`.`orderline` (
`olid` INT NOT NULL AUTO_INCREMENT,
`oid` INT NOT NULL,
`iid` INT NOT NULL,
`quantity` INT NOT NULL,
PRIMARY KEY (`olid`),
CONSTRAINT `oid_fk`
FOREIGN KEY (`oid`)
REFERENCES ims.orders (oid)
ON DELETE CASCADE
ON UPDATE CASCADE,
CONSTRAINT `iid_fk`
FOREIGN KEY (`iid`)
REFERENCES ims.items (iid)
ON DELETE CASCADE
ON UPDATE CASCADE
);
https://stackoverflow.com/questions/63903426
复制相似问题