创建表时对SQL外键约束的混淆

创建表时对SQL外键约束的混淆,sql,database,Sql,Database,我有这两个表(总共6个),我正在为我的类编写DDL。在搜索stackoverflow并找到其他人遇到我的问题的一些示例后,我似乎无法在编写此脚本时使用“修复外键问题”。第一个表创建得很好,但是第二个表有一个指向第一个表的外键,这太难了…我在过去30分钟左右一直在搞乱语法,弄不懂它。看起来是这样的: CREATE TABLE Regional_Lot (Regional_lot_ID VARCHAR(10) Primary key, location VARCHAR(20));

我有这两个表(总共6个),我正在为我的类编写DDL。在搜索stackoverflow并找到其他人遇到我的问题的一些示例后,我似乎无法在编写此脚本时使用“修复外键问题”。第一个表创建得很好,但是第二个表有一个指向第一个表的外键,这太难了…我在过去30分钟左右一直在搞乱语法,弄不懂它。看起来是这样的:

CREATE TABLE Regional_Lot
(Regional_lot_ID    VARCHAR(10) Primary key,
location        VARCHAR(20));

Insert into Regional_Lot Values
(1,'Richmond');
Insert into Regional_Lot Values
(2,'Virginia Beach');
Insert into Regional_Lot Values
(3,'Harrisonburg');

CREATE TABLE Vehicle1
(VIN        VARCHAR(17) Primay key,
Year        VARCHAR(10),
Make        VARCHAR(10),
Model       VARCHAR(10),
Condition           VARCHAR(10),
Color       VARCHAR(10),
Transmission    VARCHAR(10),
Regional_Lot_ID VARCHAR(10) References Regional_Lot);
当我试图进入第二个表时,我得到一个关于右括号缺失的错误,我通过研究将其缩小为外键问题


我还使用了“运行SQL命令行”。

语法可能因RDBMS而异,如果SQL Server这样做:

CREATE TABLE Vehicle1  (
           VIN             VARCHAR(17) PRIMARY KEY
          ,Year            VARCHAR(10)
          ,Make            VARCHAR(10)
          ,Model           VARCHAR(10)
          ,Condition       VARCHAR(10)
          ,Color           VARCHAR(10)
          ,Transmission    VARCHAR(10)
          ,Regional_Lot_ID VARCHAR(10) FOREIGN KEY REFERENCES Regional_Lot(Regional_lot_ID)
         );

在您的示例中,单词“Primay”键是一个输入错误还是您的问题他正在将整数值插入varchar(10)字段中。我猜他正在使用mysql。甚至没有注意到Primary拼写错误…我以为外键的语法不正确…非常感谢逻辑学家,它现在可以工作了!
CREATE TABLE Vehicle1
(VIN        VARCHAR(17) Primay key,
Year        VARCHAR(10),
Make        VARCHAR(10),
Model       VARCHAR(10),
Condition           VARCHAR(10),
Color       VARCHAR(10),
Transmission    VARCHAR(10),
Regional_Lot_ID VARCHAR(10) foreign key References Regional_Lot(Regional_lot_ID));