Професионална програма
Loading...
YordanDringov avatar YordanDringov 26 Точки

[Homework Data Definition and Data Types] Problem 4. Insert Records in Both Tables

Имам проблем при submit на заявката ми: 

INSERT INTO Minions(Id, Name, Age, TownId)
VALUES (1, 'Kevin', 22, 1),
(2,'Bob',15, 3),
(3,'Steward',NULL, 2)

INSERT INTO Towns (Id, Name)
VALUES(1,'Sofia'),
		(2,'Plovdiv'),
		(3,'Varna')

Получавам Compile Time Error 

The INSERT statement conflicted with the FOREIGN KEY constraint "FK_Minions_Towns". The conflict occurred in database "68ebb5c6-4283-45d9-a4a3-6adb9b27b13f", table "dbo.Towns", column 'Id'.
The statement has been terminated.

Как да премахна конфликта, идващ от Id на Towns?

0
Databases Basics
Bullsized avatar Bullsized 153 Точки

за да ти мине 1/1 в джъдж пиши това:

INSERT INTO Towns (Id, Name) VALUES
(1, 'Sofia'), 
(2, 'Plovdiv'), 
(3, 'Varna')

INSERT INTO Minions (Id, Name, Age, TownId) VALUES
(1, 'Kevin', 22, 1), 
(2, 'Bob', 15, 3), 
(3, 'Steward', NULL, 2)

но като цяло във MSSQL SMS работи и следното нещо, което идея си нямам що не го харесва джъджа:

INSERT INTO Towns(Name) VALUES
('Sofia'),
('Plovdiv'),
('Varna')
GO

INSERT INTO Minions(Name, Age, TownId) VALUES
('Kevin', '22', 1),
('Bob', '15', 3),
('Steward', '0', 2)
GO

 

-2
Supbads avatar Supbads 5 Точки

Изглежда джъдж изисква ние да набием ID-тата ръчно (в първите задачи никаде не пише за ауто инкремент). Предполагам това е причината това да е решението при което минава.

1
Bullsized avatar Bullsized 153 Точки

като цяло и доста народ във фейсбук групата е оревала арталъка за рази задача, условието е малко подвеждащо, трябва първо да се промени първо да се добавят градовете, а после минионите. но определено набиването на ид-тата ръчно не е "умния" начин...

-1
Supbads avatar Supbads 5 Точки

Това със реда на добавяне в този случай е правилно, тъй като няма как да направи Foreign Key референс-а ако не е написано по този начин.

1