Во-первых, хочу отметить, что я новичок в этом.
У меня проблема со вставкой в таблицу. Когда я пытаюсь запустить весь код сразу, возникает ошибка:
Msg 547, Level 16, State 0, Line 134 The INSERT statement conflicted with the FOREIGN KEY constraint "FK__Zwierze__Klatka___440B1D61". The conflict occurred in database "zoo2", table "dbo.Klatka", column 'ID_Klatka'.
Что я пробовал:
Сначала создайте все таблицы, затем вставьте.
Чтобы изменить порядок строк в запросе, но это не помогает
Искать дубликаты, но безрезультатно.
Я пытаюсь около 3 часов и понятия не имею, что делать. Я знаю, что эту ошибку действительно легко понять, но даже это я не знаю, что делать.
Вы можете найти весь код ниже.
Пожалуйста, помогите мне с этим.
Спасибо заранее.
USE zoo2
Create Table Domena (
ID_Domena INT NOT NULL IDENTITY (1,1) PRIMARY KEY,
Nazwa_Domena varchar(80) NOT NULL,
)
Create Table Krolestwo (
ID_Krolestwo INT NOT NULL IDENTITY (1,1) PRIMARY KEY,
Nazwa_Krolestwo varchar(80) NOT NULL,
ID_Domena INT NOT NULL REFERENCES Domena(ID_Domena)
)
Create Table Typ (
ID_Typ INT NOT NULL IDENTITY (1,1) PRIMARY KEY,
Nazwa_Typ varchar(80) NOT NULL,
ID_Krolestwo INT NOT NULL REFERENCES Krolestwo(ID_Krolestwo)
)
Create Table Gromada (
ID_Gromada INT NOT NULL IDENTITY (1,1) PRIMARY KEY,
Nazwa_Rodzina varchar(80) NOT NULL,
ID_Typ INT NOT NULL REFERENCES Typ(ID_Typ)
)
Create Table Rzad (
ID_Rzad INT NOT NULL IDENTITY (1,1) PRIMARY KEY,
Nazwa_Rodzina varchar(80) NOT NULL,
ID_Gromada INT NOT NULL REFERENCES Gromada(ID_Gromada)
)
Create Table Rodzina (
ID_Rodzina INT NOT NULL IDENTITY (1,1) PRIMARY KEY,
Nazwa_Rodzina varchar(80) NOT NULL,
ID_Rzad INT NOT NULL REFERENCES Rzad(ID_Rzad)
)
Create Table Rodzaj (
ID_Rodzaj INT NOT NULL IDENTITY (1,1) PRIMARY KEY,
Nazwa_Rodzaj varchar(80) NOT NULL,
ID_Rodzina INT NOT NULL REFERENCES Rodzina(ID_Rodzina)
)
Create Table Gatunek (
ID_Gatunek INT NOT NULL IDENTITY (1,1) PRIMARY KEY,
Nazwa_Gatunek varchar(80) NOT NULL,
ID_Rodzaj INT NOT NULL REFERENCES Rodzaj(ID_Rodzaj),
Opis_Gatunek varchar(500)
)
Create Table Strefa(
ID_Strefa INT NOT NULL IDENTITY (1,1) PRIMARY KEY,
Strefa char(1) NOT NULL
)
Create Table Klatka_Rozmiar(
ID_Klatka_Rozmiar INT NOT NULL IDENTITY (1,1) PRIMARY KEY,
Wysokosc INT NOT NULL,
Szerokosc INT NOT NULL,
Dlugosc INT NOT NULL
)
Create Table Pomieszczenie(
ID_Pomieszczenie INT NOT NULL IDENTITY (1,1) PRIMARY KEY,
Nr_Pomieszczenie INT NOT NULL,
ID_Strefa INT NOT NULL REFERENCES Strefa(ID_Strefa)
)
Create Table Klatka (
ID_Klatka INT NOT NULL IDENTITY (1,1) PRIMARY KEY,
ID_Klatka_Rozmiar INT NOT NULL REFERENCES Klatka_Rozmiar(ID_Klatka_Rozmiar),
ID_Pomieszczenie INT NOT NULL REFERENCES Pomieszczenie(ID_Pomieszczenie),
)
Create Table Zwierze (
ID_Zwierze INT NOT NULL IDENTITY (1,1) PRIMARY KEY,
Nazwa_Zwierze varchar(255) NOT NULL,
Klatka_ID INT NOT NULL REFERENCES Klatka(ID_Klatka),
Zwierze_ID_Domena INT NOT NULL REFERENCES Domena(ID_Domena),
Zwierze_ID_Krolestwo INT NOT NULL REFERENCES Krolestwo(ID_Krolestwo),
Zwierze_ID_Typ INT NOT NULL REFERENCES Typ(ID_Typ),
Zwierze_ID_Gromada INT NOT NULL REFERENCES Gromada(ID_Gromada),
Zwierze_ID_Rzad INT NOT NULL REFERENCES Rzad(ID_Rzad),
Zwierze_ID_Rodzina INT NOT NULL REFERENCES Rodzina(ID_Rodzina),
Zwierze_ID_Rodzaj INT NOT NULL REFERENCES Rodzaj(ID_Rodzaj),
Zwierze_ID_Gatunek INT NOT NULL REFERENCES Gatunek(ID_Gatunek)
)
--Koniec Tworzenie Tabel--
--Dodawanie wartości--
--Dodawanie domeny--
INSERT INTO Domena
VALUES ('Eukarionty');
--Dodawanie królestwa--
INSERT INTO Krolestwo
VALUES ('Zwierzeta', 1);
--Dodawanie typu--
INSERT INTO Typ
VALUES ('Miesny', 1),('Strunowce', 1);
--Dodawanie Gromady--
INSERT INTO Gromada
VALUES ('Ssaki', 1),('Kręgowce', 2);
--Dodawanie Rzędu--
INSERT INTO Rzad
VALUES ('Parzystokopytne', 1),('Sowy', 2);
--Dodawanie Rodziny--
INSERT INTO Rodzina
VALUES ('Wołowate', 1),('Ptaki', 2);
--Dodawanie Rodzaju--
INSERT INTO Rodzaj
VALUES ('Bydło', 1),('Ptactwo', 2);
--Dodawanie Gatunku--
INSERT INTO Gatunek
VALUES ('Tur europejski', 1, '*Taki niby byk*'),('Drapieżny', 2, '*Ptak drapieżny*');
--Dodawanie Strefy--
INSERT INTO Strefa
VALUES ('A'),('B'),('C')
--Dodawanie Pomieszczenia--
INSERT INTO Pomieszczenie
VALUES (1,1),(2,1),(3,2),(4,3),(5,3)
--Dodawanie Klatek_rozmiar--
INSERT INTO Klatka_Rozmiar
VALUES (100,100,100),(500,500,500),(7000,7000,7000)
--Dodawanie Zwierząt--
INSERT INTO Zwierze
VALUES ('Byk', 1, 1, 1, 1, 1, 1, 1, 1 ,1 )
Да, как указал @Nilesh, ошибка довольно очевидна. Когда вы создаете таблицы с внешними ключами, вы заставляете ключи сохранять постоянство между таблицами. Итак, если у вас есть внешний ключ в таблице a с полем таблицы b, и вы пытаетесь вставить в таблицу a значение, которого нет в b, вы всегда будете получать эту ошибку. Вы должны сделать ваши инструкции вставки упорядочены, чтобы избежать этой проблемы
Вы никогда ничего не вставляли в таблицу Klatka
Боже мой .. Ребята огромное, огромное спасибо! Я не знаю почему, но вчера, после нескольких часов борьбы с этим, я случайно удалил всю таблицу вставок ... (чего я не заметил), я не ожидал никакого ответа, но теперь, когда я увидел 3 ответы, я был так счастлив. Спасибо вам, ребята!!!


Вы пытаетесь вставить значение, которого нет в указанной таблице. Вы пытаетесь вставить в
Zwierzeзначение 1 дляKlatka.ID_Klatka, которого не существует