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

mysql chèn một lúc vào 2 bảng có khóa chính và khóa ngoại

Bạn có thể sử dụng STORED PROCEDURE về điều này, do đó bạn sẽ chỉ gọi một lần từ cấp ứng dụng. Ví dụ,

DELIMITER $$
CREATE PROCEDURE InsertBook
(
    IN _Title INT,
    IN _AwardName VARCHAR(35),
    IN _Year INT
)
BEGIN
    INSERT INTO Books (Title)
    VALUES(_Title);

    -- since the ID is set as AUTO_INCREMENT
    -- there are two ways to do how you can get the ID 
    -- from the Books Table and insert it 
    -- on BookAwards

    -- FIRST WAY
    -- by using LAST_INSERT_ID()
    SET @last_ID = LAST_INSERT_ID();

    -- SECOND WAY
    -- by using MAX()
    -- SET @last_ID = (SELECT MAX(ID) FROM Books);


    INSERT INTO BookAwards(ID, AwardName, Year)
    VALUES (@last_ID, _AwardName, _Year);
END $$
DELIMITER ;

Và ở cấp độ ứng dụng hoặc trên bất kỳ nguồn nào mà bạn muốn gọi là thủ tục này,

CALL InsertBook('Lost Art', 'Best in Churva', 2013);

Vì mục đích bảo mật, bạn vẫn có thể tham số hóa quy trình, ví dụ:

CALL InsertBook(?, ?, ?);



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Khóa chính MySQL

  2. Các truy vấn mysql động với sql thoát có an toàn như các câu lệnh đã chuẩn bị không?

  3. MySql chọn giá trị mặc định nếu không có kết quả?

  4. Tạo menu chọn trong PHP với mặc định được chọn từ db MySQL

  5. Kết nối MySQL Azure với Java