创建表时对SQL外键约束的困惑

时间:2013-11-21 00:33:08

标签: sql database

我有这两个表(我总共有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命令行'。

2 个答案:

答案 0 :(得分:1)

语法可能因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)
         );

答案 1 :(得分:0)

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));