首頁  >  文章  >  資料庫  >  MySQL如何同時在多個資料表中插入資料?

MySQL如何同時在多個資料表中插入資料?

Patricia Arquette
Patricia Arquette原創
2024-11-11 21:35:03616瀏覽

How to Insert Data into Multiple Tables Simultaneously in MySQL?

插入 MySQL 中的多個表格

在此場景中,目標是將資料同時插入兩個表格中:存取和登記。雖然單一 INSERT 語句通常可以將資料插入到一個表中,但在這種情況下是不可行的。

要解決這個挑戰,有兩個可行的選項:

1。批次插入:

將插入分解為兩個不同的 INSERT 語句並將它們作為批次執行。此方法涉及使用 EXECUTE 指令,如下所示:

START TRANSACTION;
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;

2.預存程序:

建立一個封裝兩個 INSERT 語句的預存程序。這允許您透過單一過程呼叫來執行兩次插入。考慮以下範例:

CREATE PROCEDURE insert_into_multiple_tables(
    IN visit_card_id INT,
    IN registration_type ENUM('in', 'out')
)
BEGIN
    # Insert into `visits` table
    INSERT INTO visits (visit_id, card_id) VALUES (NULL, visit_card_id);
    
    # Insert into `registration` table
    INSERT INTO registration (registration_id, type, timestamp, visit_id) 
    VALUES (NULL, registration_type, UNIX_TIMESTAMP(), LAST_INSERT_ID());
END;

要呼叫預存程序,請使用下列語法:

CALL insert_into_multiple_tables(12131141, 'in');

批次插入和預存程序方法都提供了將資料插入多個的可靠方法。表。兩者之間的選擇取決於具體的應用需求和效能考量。

以上是MySQL如何同時在多個資料表中插入資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn