Mysql
 sql >> Database >  >> RDS >> Mysql

Popolamento dei campi nel database MySQL

In base alla tabella della tua domanda precedente, devi INSERT prima i record nella tabella indipendente (o nelle tabelle di base ). Alcune di queste tabelle sono event , semester , Major_Minor , ecc. Queste sono chiamate tabelle indipendenti perché nessun vincolo di chiave esterna sono stati definiti.

Esempio di query da inserire su tabelle indipendenti,

-- 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');

Dopo che i record sono stati inseriti, ora puoi INSERT su tabelle dipendenti. Questi sono chiamati dipendenti tabelle perché su di esse sono stati definiti vincoli di chiave esterna. Non puoi aggiungere un valore su determinati campi che non esiste nell'altra tabella. Un esempio di tabella dipendente è Major_Class_br tabella,

-- 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);

Come puoi vedere, i valori per Class_ID e Major_Minor_ID esisteva già nelle tabelle:class e Major_Minor perché tabella Major_Class_br dipende da loro. Per illustrare di più su questo, prova a eseguire la query di seguito in cui il valore per Class_ID non esiste ancora nel Class tabella,

INSERT INTO Major_Class_br (ID, Class_ID, Major_Minor_ID) VALUES (7,5,2);

e vedrai questo errore