Mysql
 sql >> Base de données >  >> RDS >> Mysql

Remplir les champs de la base de données MySQL

Sur la base de votre tableau de votre question précédente, vous devez INSERT enregistre d'abord sur la table indépendante (ou les tables de base ). Certaines de ces tables sont event , semester , Major_Minor , etc. Celles-ci sont appelées tables indépendantes car aucune contrainte de clé étrangère ont été définis.

Exemple de requête à insérer sur des tables indépendantes,

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

Une fois les enregistrements insérés, vous pouvez maintenant INSERT sur des tables dépendantes. Ceux-ci sont appelés dépendants tables car des contraintes de clé étrangère y ont été définies. Vous ne pouvez pas ajouter une valeur sur certains champs, il n'existe pas sur l'autre table. Un exemple de table dépendante est Major_Class_br tableau,

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

Comme vous pouvez le voir, les valeurs de Class_ID , et Major_Minor_ID existait déjà sur les tables :class et Major_Minor car la table Major_Class_br dépend d'eux. Pour illustrer davantage cela, essayez d'exécuter la requête ci-dessous dans laquelle la valeur de Class_ID n'existe pas encore sur la Class tableau,

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

et vous verrez cette erreur