使用触发器自动为新插入的特定列赋值

Using a trigger to automatically assign a value to specific column on a new insert

我正在努力寻找有关 SQL 触发器的正确​​信息。

我之前的问题因为不够具体而被删除了,所以希望这会做得更好。

我正在尝试创建一个触发器,它将 RoleID 1 分配给每个新插入的行给我的用户 table。

但是我好像想不通。

AFTER INSERT on users
on EACH ROW
insert into users.RoleID values(1);

这似乎不起作用。

有关触发器的示例和/或信息都集中在 insert/drop 或更新后的警报或发送电子邮件。

真的可以做到吗?

如有任何帮助,我们将不胜感激。

干杯!

您似乎没有使用正确的关键字创建 sql 触发器。

试试这个

drop trigger if exists before_insert_users;
DELIMITER $$
CREATE TRIGGER before_insert_users
    BEFORE INSERT ON users
    FOR EACH ROW
       BEGIN
            SET NEW.RoleID = 1;
        END$$
DELIMITER ;

注意:RoleID 实际上需要成为您 table 上的一列才能正常工作。

但是,触发器并不是执行此操作的最佳方法...请参见 SO post:Add a column with a default value to an existing table in SQL Server