sql >> Base de Datos >  >> RDS >> Mysql

Llenar campos en la base de datos MySQL

Según su tabla de su pregunta anterior, debe INSERT registra primero en la tabla independiente (o las tablas base ). Algunas de estas tablas son event , semester , Major_Minor , etc. Estas se denominan tablas independientes porque no hay restricciones de clave externa fueron definidos.

Consulta de muestra para insertar en tablas independientes,

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

Una vez insertados los registros, ahora puede INSERT en tablas dependientes. Estos se denominan dependientes tablas porque se definieron restricciones de clave externa en ellas. No puede agregar un valor en ciertos campos si no existe en la otra tabla. Ejemplo de tabla dependiente es Major_Class_br mesa,

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

Como puede ver, los valores para Class_ID y Major_Minor_ID ya existía en las tablas:class y Major_Minor porque la tabla Major_Class_br depende de ellos. Para ilustrar más sobre eso, intente ejecutar la consulta a continuación en la que el valor de Class_ID aún no existe en la Class mesa,

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

y verás este error