Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带有嵌套select的MySQL触发器_Mysql_Sql_Database Trigger - Fatal编程技术网

带有嵌套select的MySQL触发器

带有嵌套select的MySQL触发器,mysql,sql,database-trigger,Mysql,Sql,Database Trigger,我试图创建一个MySQL触发器,它在表a上的insert之后运行,并且涉及多行。基本上,当我插入表A时,我想在表B中插入一行,其中包含表C中的每一行和表A中插入的ID。有人能帮忙吗 这是总的想法- DELIMITER | CREATE TRIGGER mailings_create AFTER INSERT ON mailings FOR EACH ROW BEGIN SELECT customer_id, first_name, l

我试图创建一个MySQL触发器,它在表a上的insert之后运行,并且涉及多行。基本上,当我插入表A时,我想在表B中插入一行,其中包含表C中的每一行和表A中插入的ID。有人能帮忙吗

这是总的想法-

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);
    }
...
谢谢

埃文怎么样-

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 ;

这太棒了-还有一件事-我如何在末尾添加一些东西来更新“邮件”中插入的行数的“消息”?您可以使用
SELECT ROW_COUNT()
检索上一个查询插入的行数。我会更新我的答案。