SQL结构帮助和查询

时间:2014-02-14 09:25:49

标签: mysql sql database

我无法找出我的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) 
                   )

请有人帮忙

4 个答案:

答案 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_id 在您的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) 
  ) 

SQL Fiddle

答案 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))

SQl fiddle