Mysql
 sql >> Baza danych >  >> RDS >> Mysql

mySQL - Wstaw do trzech tabel

Zdecydowanie powinieneś zrobić trzy wstawki w transakcji. Prawdopodobnie napisałbym procedurę składowaną do obsługi wstawek.

EDYCJA:

Oto przykład procedury składowanej z transakcją. Zwróć uwagę na użycie LAST_INSERT_ID() w celu uzyskania identyfikatora poprzednio wstawionego rekordu. To tylko dwa stoły, ale powinieneś być w stanie rozszerzyć go do trzech.

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 ;

I tak to nazywasz:

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Znaki zapytania MySQL db zamiast znaków hebrajskich..?

  2. TIME() Przykłady – MySQL

  3. Jak stworzyć bazę danych mysql za pomocą sequelize (nodejs)

  4. Surowe zapytanie o istotność w Laravel. Jak sobie z tym poradzić?

  5. Porównanie Oracle MySQL, Percona Server i MariaDB