2

テーブル A への挿入後に実行され、複数の行に関係する MySQL トリガーを作成しようとしています。基本的に、テーブル A に挿入すると、テーブル C のすべての行とテーブル A から挿入された ID を使用して、テーブル B に行を挿入したいと考えています。

これが一般的な考え方です -

DELIMITER |
CREATE TRIGGER mailings_create AFTER INSERT ON mailings FOR EACH ROW
BEGIN   
    SELECT
        customer_id,
        first_name,
        last_name,
        email
    INTO
        customer_id,
        first_name,
        last_name,
        email
    FROM
        cam_customers
    WHERE
        mail_list = 'T'
        AND email IS NOT NULL;

    foreach ($data as $row) {
        INSERT INTO
            mailings_messages
            (mailings_id, first_name, last_name, customer_id, email)
        VALUES
            (NEW.id, first_name, lsat_name, customer_id, email);
    }
...

ありがとう!

エヴァン

4

1 に答える 1

1

どうですか -

DELIMITER |

CREATE TRIGGER mailings_create AFTER INSERT ON mailings
    FOR EACH ROW BEGIN

        INSERT INTO mailings_messages
            (mailings_id, first_name, last_name, customer_id, email)
        SELECT NEW.id, first_name, last_name, customer_id, email
        FROM cam_customers
        WHERE mail_list = 'T'
        AND email IS NOT NULL;

        SELECT @row_count := ROW_COUNT();
        -- INSERT or UPDATE using @row_count here

    END;
|

DELIMITER ;
于 2012-03-13T00:01:30.277 に答える