Na základě vaší tabulky z předchozí otázky musíte INSERT
záznamy nejprve v nezávislé tabulce (nebo základních tabulkách ). Některé z těchto tabulek jsou event
, semester
, Major_Minor
, atd. Tyto tabulky se nazývají nezávislé tabulky, protože žádná omezení cizích klíčů byly definovány.
Ukázkový dotaz k vložení do nezávislých tabulek
-- INSERTING records on table event
INSERT INTO event (ID, event_description, event_datetime) VALUES
(1, 'hello', NOW()),
(2, 'world', NOW()),
(3, 'stack', NOW()),
(4, 'overflow', NOW());
-- INSERTING records on table semester
INSERT INTO semester (ID, SEMESTER_NAme) VALUES
(1, 'First Semester'),
(2, 'Second Semester'),
(3, 'Summer');
-- INSERTING records on table Major_Minor
INSERT INTO Major_Minor (ID, Major_Minor_Name) VALUES
(1, 'Math'),
(2, 'Science'),
(3, 'English');
-- INSERTING records on table class
INSERT INTO class (ID, class_name) VALUES
(1, 'Alpha'),
(2, 'Beta'),
(3, 'Gamma'),
(4, 'Omega');
Po vložení záznamů můžete nyní INSERT
na závislých tabulkách. Tyto se nazývají závislé tabulky, protože na nich byla definována omezení cizího klíče. Nemůžete přidat hodnotu do určitých polí, která v jiné tabulce neexistuje. Příkladem závislé tabulky je Major_Class_br
stůl,
-- INSERTING records on table Major_Class_br
INSERT INTO Major_Class_br (ID, Class_ID, Major_Minor_ID) VALUES
(1,1,1),
(2,1,2),
(3,1,3),
(4,2,1),
(5,2,1),
(6,4,2);
Jak vidíte, hodnoty pro Class_ID
a Major_Minor_ID
již existoval v tabulkách:class
a Major_Minor
protože tabulka Major_Class_br
je na nich závislý. Chcete-li to ilustrovat více, zkuste provést dotaz níže, kde je uvedena hodnota Class_ID
v Class
zatím neexistuje stůl,
INSERT INTO Major_Class_br (ID, Class_ID, Major_Minor_ID) VALUES (7,5,2);
a uvidíte tuto chybu