我无法找出我的SQL查询有什么问题:
CREATE TABLE Product (
productID int NOT NULL,
name varchar(255) NOT NULL,
price int(255),
PRIMARY KEY (productID)
)
CREATE TABLE User (
userID int NOT NULL,
PRIMARY KEY (userID)
)
CREATE TABLE Purchased (
productID int NOT NULL,
userID varchar(255) NOT NULL,
date date(255), NOT NULL,
FOREIGN KEY (productID) REFERENCES Product(productID) FOREIGN KEY (userID) REFERENCES User(userID)
)
请有人帮忙
答案 0 :(得分:1)
首先,您的第三个CREATE TABLE
语句中存在语法错误,您在NOT NULL
约束之前指定了逗号,在第二个外键定义之前指定了逗号。
另外需要注意的是,您不应该像指定的那样为DATE
数据类型指定任何参数。
编辑:此表中userID的数据类型需要与外键工作的用户表的数据类型相同。
正确的陈述是
CREATE TABLE Purchased (productID int NOT NULL,
userID INT NOT NULL,
date date NOT NULL,
FOREIGN KEY (productID) REFERENCES Product(productID),
FOREIGN KEY (userID) REFERENCES User(userID)
)
如果您遇到其他错误,请更新您的问题
答案 1 :(得分:1)
在您的查询中,问题出在日期类型列中,因此不需要将日期声明为变量,因为它是sql中的关键字。
1.Date is a keyword
2.No need to size for date
答案 2 :(得分:0)
create table
声明中存在一些语法错误。
USER
表格中 int ,在purchased
表格中 varchar 正确的陈述是
CREATE TABLE purchased
(
productid INT NOT NULL,
userid INT NOT NULL,
date1 DATE NOT NULL,
FOREIGN KEY (productid) REFERENCES product(productid),
FOREIGN KEY (userid) REFERENCES USER(userid)
)
答案 3 :(得分:0)
使用date date NOT NULL
CREATE TABLE Product (productID int NOT NULL, name varchar(255) NOT NULL, price int(255), PRIMARY KEY (productID));
CREATE TABLE User ( userID int NOT NULL, PRIMARY KEY (userID) );
CREATE TABLE Purchased (productID int NOT NULL, userID int NOT NULL , date date NOT NULL,
FOREIGN KEY (productID) REFERENCES Product(productID),
FOREIGN KEY (userID) REFERENCES User(userID))