Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

mySQL - Chèn vào ba bảng

Bạn chắc chắn nên thực hiện ba lần chèn trong một giao dịch. Tôi có thể sẽ viết một thủ tục được lưu trữ để xử lý các phần chèn.

CHỈNH SỬA:

Đây là một ví dụ về một thủ tục được lưu trữ với một giao dịch. Lưu ý việc sử dụng LAST_INSERT_ID () để lấy ID của bản ghi đã chèn trước đó. Đây chỉ là hai bảng, nhưng bạn có thể mở rộng nó thành ba bảng.

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 ;

Và bạn gọi nó như vậy:

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. Tôi cần auto_increment một trường trong MySQL không phải là khóa chính

  2. Cần chèn 100000 hàng trong mysql bằng chế độ ngủ đông trong vòng chưa đầy 5 giây

  3. Laravel Crypt - So sánh các giá trị

  4. FIND_IN_SET () so với IN ()

  5. Cách sử dụng Coalesce trong MySQL