sql >> Databasteknik >  >> RDS >> Mysql

mySQL - Infoga i tre tabeller

Du bör definitivt göra de tre infogningarna i en transaktion. Jag skulle förmodligen skriva en lagrad procedur för att hantera inläggen.

EDIT:

Här är ett exempel på en lagrad procedur med en transaktion. Notera användningen av LAST_INSERT_ID() för att få ID för den tidigare infogade posten. Detta är bara två tabeller, men du bör kunna utöka det till tre tabeller.

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 ;

Och du kallar det så:

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


  1. Säkra din MySQL-installation

  2. Data från oracle i utf-8 med php

  3. Hur man ställer in root-lösenordet till null

  4. PHP / MYSQL Lägg till knapp i kolumn