さて、私はいくつかのばかげた問題で立ち往生しています。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
にバグがあり、コンパイラーは と にいくつかの制限の競合があるとINSERT
言いFOREIGN KEY
ますが、彼が何について不平を言っているのかまったくわかりません。
実際にはすべてのデータがテーブルにあるのに、単純に挿入できないのはなぜですか?
この問題の解決策は何ですか?
エラーメッセージ:
INSERT ステートメントが FOREIGN KEY 制約と競合しましたデータベースで競合が発生しました...、テーブル「dbo.Street」、列「StreetID」