关于外键的写法
几个数据表,还有一个关系图(存在主键和外键),写一个sql.
我把每个TABLE都用 CREATE TABLE写完,并用INSERT INTO写入数据,并在INSERT INTO的后面用了
select *from来显示每个table,我发现有时候会提示错误,就是说某某table已经存在,所以在每个CREATE TABLE 之前加了一个if判断语句 ,例如 If object_id('NAME') is not null DROP table NAME
这样的判断
此时代码没有问题,可以通过
之后在最后写外键,例如这样:
ALTER TABLE NAME
ADD FOREIGN KEY(ID_num)
REFERENCES DEPARTMENT(number)
有的代码没有问题,加了一些类似的代码后,有例如 ALTER TABLE与foreign key 冲突
有这样的关系:一个table里面的外键指向同一个table里的主键
以及 多个不同的table里面的外键同时指向另一个table里的主键
还有这样的错误:提示不能drop 某某table,因为被一个外键约束,此时如果删去那个判断,就提示table已存在,总之保留这个语句就说不能DROP,删掉这个语句就说不能创建,因为TABLE已存在。此时保留或删除那个If判断语句都不行。