触发器无效,插入时插入另一个表时出错

时间:2015-07-14 02:02:54

标签: mysql triggers innodb

我正在尝试在将记录插入主表时将新记录插入表中。然而,它甚至没有注册为触发器......

 DELIMITER $$
    CREATE TRIGGER trigger_InsertRoleplay ON `users`
    FOR INSERT AS
    BEGIN

        INSERT INTO 
        `roleplay_users`
        (
            id
        )
        SELECT 
            id
        FROM 
            INSERTED
    END$$
    DELIMITER ;

返回错误。

    CREATE TRIGGER trigger_InsertRoleplay ON `users`
FOR INSERT AS
BEGIN

    INSERT INTO 
    `roleplay_users`
    (
        id
    )
    SELECT 
        id
    FROM 
        INSERTED
END;
/* SQL Error (1064): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ON `users`
FOR INSERT AS
BEGIN

    INSERT INTO 
    `roleplay_users`
    ' at line 1 */
/* Affected rows: 0  Found rows: 0  Warnings: 0  Duration for 0 of 1 query: 0.000 sec. */

1 个答案:

答案 0 :(得分:0)

如果你使用MySQL,那么你可能想要这样的东西:

DELIMITER $$

CREATE TRIGGER trigger_InsertRoleplay AFTER INSERT ON `users`
FOR EACH ROW
BEGIN
    INSERT INTO roleplay_users(id)
        SELECT new.id;
END$$
DELIMITER ;

INSERTED是SQL Server使用的东西,而不是MySQL。