sql >> Database >  >> RDS >> Mysql

mySQL - Invoegen in drie tabellen

Je moet zeker de drie inserts in een transactie doen. Ik zou waarschijnlijk een opgeslagen procedure schrijven om de invoegingen af ​​te handelen.

BEWERKEN:

Hier is een voorbeeld van een opgeslagen procedure met een transactie. Let op het gebruik van LAST_INSERT_ID() om de ID van het eerder ingevoegde record te krijgen. Dit zijn slechts twee tabellen, maar u zou het moeten kunnen uitbreiden naar drie tabellen.

DELIMITER //
CREATE PROCEDURE new_engineer_with_task(
  first CHAR(35), last CHAR(35), email CHAR(255), tool_id INT)
BEGIN
START TRANSACTION;
   INSERT INTO engineers (firstname, lastname, email) 
     VALUES(first, last, email);

   INSERT INTO tasks (engineer_id, tool_id) 
     VALUES(LAST_INSERT_ID(), tool_id);
COMMIT;
END//
DELIMITER ;

En jij noemt het zo:

CALL new_engineer_with_task('Jerry', 'Fernholz', '[email protected]', 1);


  1. Gegevensreplicatie in IRI Workbench

  2. Hoe maak je een PHP-tabel met twee kolommen met waarden uit de database?

  3. Hoe 'Systeembron overschreden' te repareren bij migratie naar Windows 10

  4. Een nieuwe database maken met MySQL Workbench