使用触发器自动为新插入的特定列赋值
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
我正在努力寻找有关 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