sql >> データベース >  >> RDS >> Mysql

mySQL-3つのテーブルに挿入

    トランザクションでは、必ず3つの挿入を行う必要があります。おそらく、挿入を処理するためのストアドプロシージャを作成します。

    編集:

    トランザクションを使用したスト​​アドプロシージャの例を次に示します。以前に挿入されたレコードのIDを取得するためのLAST_INSERT_ID()の使用に注意してください。これは2つのテーブルだけですが、3つのテーブルに拡張できるはずです。

    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 ;
    

    そして、あなたはそれをそのように呼びます:

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


    1. MariaDB JSON_TABLE()の説明

    2. PostgreSQLで符号なし整数が使用できないのはなぜですか?

    3. BIGINT(8)はMySQLが格納できる最大の整数ですか?

    4. MySQL2つのフィールドでテーブルを結合する方法