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