sql >> Databáze >  >> RDS >> Mysql

mySQL - Vložení do tří tabulek

Určitě byste měli provést tři vložky v transakci. Pravděpodobně bych napsal uloženou proceduru pro manipulaci s vložkami.

EDIT:

Zde je příklad uložené procedury s transakcí. Všimněte si použití LAST_INSERT_ID() k získání ID dříve vloženého záznamu. Toto jsou pouze dvě tabulky, ale měli byste být schopni to rozšířit na tři tabulky.

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 ;

A vy tomu říkáte takto:

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


  1. PostgreSQL 9.6:Paralelní sekvenční skenování

  2. Znamená vývoj kontaktních informací změnu vaší databáze?

  3. Jaký je výchozí název omezení v SQL Server?

  4. zahrnout třídu Jfactory do externího souboru php, Joomla