Mysql
 sql >> Datenbank >  >> RDS >> Mysql

mySQL - In drei Tabellen einfügen

Sie sollten auf jeden Fall die drei Einfügungen in einer Transaktion durchführen. Ich würde wahrscheinlich eine gespeicherte Prozedur schreiben, um die Einfügungen zu handhaben.

BEARBEITEN:

Hier ist ein Beispiel für eine gespeicherte Prozedur mit einer Transaktion. Beachten Sie die Verwendung von LAST_INSERT_ID(), um die ID des zuvor eingefügten Datensatzes zu erhalten. Dies sind nur zwei Tabellen, aber Sie sollten es auf drei Tabellen erweitern können.

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 ;

Und Sie nennen es so:

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