好吧,我遇到了一些愚蠢的问题。在 SQL Server 2012 中,我尝试像这样实现城市数据库:有一个City
对象,一个Street
指向City
街道所在位置的House
对象,以及一个指向Street
房屋所在位置的对象。
所以我写的是:
CREATE TABLE City
(
CityID INTEGER NOT NULL,
CityName VARCHAR(50) NOT NULL,
PRIMARY KEY(CityID)
)
INSERT INTO City VALUES
(1, 'Moscow'),
-- Code for 2-7id's instructions is there
(8, 'Kazan');
CREATE TABLE Street
(
StreetID INTEGER NOT NULL,
StreetName VARCHAR(50) NOT NULL,
CityID INTEGER NOT NULL,
FOREIGN KEY(CityID) REFERENCES City(CityID),
PRIMARY KEY(StreetID)
)
INSERT INTO Street VALUES
(1, 'Nation Street', 1),
-- code for 2-19 id's insertions is there
(20, 'Fuj Street', 8);
CREATE TABLE House
(
HouseID INTEGER NOT NULL,
StreetID INTEGER NOT NULL,
Height INTEGER NOT NULL,
FOREIGN KEY (StreetID) REFERENCES Street(StreetID),
PRIMARY KEY(HouseID)
)
INSERT INTO House VALUES
(1, 1, 100),
-- ...
第一次插入有一个错误,INSERT INTO HOUSE VALUES
编译器说 and 存在一些限制冲突INSERT
,FOREIGN KEY
但我完全不明白他在抱怨什么。
所有数据实际上都在表中,那么为什么我不能简单地进行插入呢?
这个问题的解决方案是什么?
错误信息:
INSERT 语句与 FOREIGN KEY 约束冲突冲突发生在数据库中,...,表“dbo.Street”,列“StreetID”