Софтуерно Инженерство

[Homework Data Definition and Data Types] Problem 4. Insert Records in Both Tables - Софтуерен университет

+ Нов въпрос
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
vancho avatar vancho 429 Точки

Първо инсертни towns и после minions. Искаш да дадеш id на град а нямаш таблица още.

3
12/01/2017 17:25:39
stoyan.grigorov avatar stoyan.grigorov 37 Точки

Защото се опитваш да създадеш нещо в минионс което има връзка с референтен ключ в Towns преди да си направил каквито и да е въведения там.

 

Първо градовете после Минионите.

3
sly_racoon88 avatar sly_racoon88 10 Точки

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

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

 

Invalid object name 'Minions'.

 

Whyyy?? :D

0
stoyan.grigorov avatar stoyan.grigorov 37 Точки

Виж дали горе си избрал правилната база. Трябва да е Минионс

0
sly_racoon88 avatar sly_racoon88 10 Точки

Judge ми дава това, иначе в Management Studio си е О.К.

0
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
Stephen avatar Stephen 1 Точки
Minions се ревърва от Towns,защото взима информацията оттам от колона Id.
Затова първо инсъртни стойностите в таблица Towns първо.
0