使用單一查詢將資料同時插入 MySQL 中的多個表中是不可行的。但是,還有其他方法可以實現此目的:
您可以批次執行多個INSERT 語句:
BEGIN; INSERT INTO visits (visit_id, card_id) VALUES (NULL, 12131141); INSERT INTO registration (registration_id, type, timestamp, visit_id) VALUES (NULL, 'in', UNIX_TIMESTAMP(), LAST_INSERT_ID()); COMMIT;
或者,您可以建立一個封裝兩個INSERT語句的預存程序:
CREATE PROCEDURE insert_into_multiple_tables( IN card_id INT ) BEGIN INSERT INTO visits (visit_id, card_id) VALUES (NULL, card_id); INSERT INTO registration (registration_id, type, timestamp, visit_id) VALUES (NULL, 'in', UNIX_TIMESTAMP(), LAST_INSERT_ID()); END
然後您可以使用所需的卡ID 執行預存程序:
CALL insert_into_multiple_tables(12131141);
為了確保資料的完整性,可以將批次或儲存程序包裝在交易中:
BEGIN TRANSACTION; -- Execute INSERT statements here COMMIT;
如果任何INSERT語句失敗,交易將回滾,確保所有受影響表中的資料保持一致。
以上是MySQL如何向多個表插入資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!