gpt4 book ai didi

mysql - 运行MYSQL代码时出错-- super 困惑

转载 作者:行者123 更新时间:2023-11-29 11:13:29 25 4
gpt4 key购买 nike

尝试在 sqlfiddle 中编译时出现此错误 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在第 9 行“)”附近使用的正确语法

如果我取出第 9 行,它也会做同样的事情,我不知道如何解决这个问题。

我对此很陌生,我可以从 MySQL 社区版运行这些命令吗?

如果我单独运行客户表,它可以工作,我添加披萨表就可以了,但是当我添加 OrderInformation 表时,我开始收到该错误。我已经检查了代码几次,当涉及到订单信息表时,我是否遗漏了什么?我被困住了。

CREATE TABLE Customer 
(
CustomerID int NOT NULL AUTO_INCREMENT,
FirstName varchar(45) NOT NULL,
LastName varchar(45) NOT NULL,
StreetAddress varchar(45) NOT NULL,
City varchar(45) NOT NULL,
State varchar(2) NOT NULL,
ZipCode varchar(5) NOT NULL,
HomePhone INT(11) ,
MobilePhone INT(11) ,
OtherPhone INT(11),
PRIMARY KEY (CustomerID)
);



CREATE TABLE Pizza
(
PizzaID INT NOT NULL AUTO_INCREMENT,
PizzaName VARCHAR(45) NOT NULL,
Description VARCHAR(90),
UnitPrice DECIMAL NOT NULL,
PRIMARY KEY (PizzaID)
);


CREATE TABLE OrderInformation
(
OrderID int NOT NULL,
CustomerID int NOT NULL AUTO_INCREMENT,
OrderDate date NOT NULL,
PRIMARY KEY (CustomerID, OrderID),
FOREIGN KEY(CustomerID) REFERENCES Customer (CustomerID),

);


CREATE TABLE OrderItem
(
OrderID INT NOT NULL,
Quantity SMALLINT(5),
PizzaID INT NOT NULL,
PRIMARY KEY (OrderID, PizzaID),
FOREIGN KEY(PizzaID) REFERENCES Pizza (PizzaID),
FOREIGN KEY(OrderID) REFERENCES OrderInformation (OrderID)
);

最佳答案

您的问题是您在不应该出现的地方留下了逗号 ,:

CREATE TABLE OrderInformation 
(
OrderID int NOT NULL,
CustomerID int NOT NULL AUTO_INCREMENT,
OrderDate date NOT NULL,
PRIMARY KEY (CustomerID, OrderID),
FOREIGN KEY(CustomerID) REFERENCES Customer (CustomerID), --<--------- here
);

删除它,你应该没问题。

我还注意到另一个问题。

OrderItem 表中,您尝试向 OrderInformation 表添加外键约束,但仅指定了一个字段。 OrderInformation 表有两个字段作为主键,因此每个对其有约束的表也应该具有这两列。

此外,在 OrderInformation 表中将 CustomerID int NOT NULL AUTO_INCRMENT, 列设置为 AUTO_INCRMENT 是没有意义的。它应该只是一个外键约束。给定您的数据库模型。

关于mysql - 运行MYSQL代码时出错-- super 困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40144440/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com