不确定我的SQL有什么问题吗?

时间:2015-09-27 13:36:02

标签: mysql sql

我只是刚刚开始在SQL领域开始尝试弄清楚我的一个表格出错了。我跟着

CREATE TABLE Winemaker ( 
Winemaker_id varchar (20) NOT NULL, 
Winemaker_name varchar (20) NOT NULL, 
key (Winemaker_Id)); 

CREATE TABLE Wine ( 
Wine_Id varchar (20) NOT NULL, 
Wine_name varchar (20) NOT NULL, 
Winemaker_Id varchar (4) NOT NULL, 
Wine_vintage varchar (8) NOT NULL, 
Wine_price varchar (8) NOT NULL 
Primary key (Wine_Id) 
Foreign key (Winemaker_Id) REFERENCES Winemaker(Id)); 

我不太确定我做错了什么。如果有人能提供帮助那就太棒了,谢谢!

1 个答案:

答案 0 :(得分:1)

您有几个问题,主要围绕外键引用的定义。试试这个:

CREATE TABLE Winemaker ( 
    Winemaker_id varchar(20) NOT NULL, 
    Winemaker_name varchar(20) NOT NULL, 
    primary key (Winemaker_Id)
); 

CREATE TABLE Wine ( 
    Wine_Id varchar(20) NOT NULL, 
    Wine_name varchar(20) NOT NULL, 
    Winemaker_Id varchar(20) NOT NULL, 
    Wine_vintage varchar(8) NOT NULL, 
    Wine_price varchar (8) NOT NULL,
    Primary key (Wine_Id),
    Foreign key (Winemaker_Id) REFERENCES Winemaker(Winemaker_id)
); 

SQL小提琴是here

注意:

  • 您需要在Winemaker上定义主键(或至少是唯一键)以获得外键引用。
  • 引用表中列的数据类型需要与引用表中的数据类型完全匹配。
  • 你错过了逗号。
  • 你有额外的关闭parens和分号。
  • 此外,允许varchar(之间的空格,但它们看起来很尴尬。