MYSQL 更新值时触发器更新未按预期工作
MYSQL Trigger update not working as expected when value is updated
希望在更新行时在 MYSQL table 上使用触发器,无论何时更新行。仅在 id 字段为 null 时设置 id
create trigger before_id_update
BEFORE UPDATE
ON USERS for each row
BEGIN
if id iS NULL THEN
SET id = username
END IF;
END
当前更新 table 行时没有任何反应
您的代码应该会引发语法错误,因为 id
和 username
是未定义的变量。如果要访问更新行上的值,请使用伪表 NEW
或 OLD
.
你的代码开头还需要一个delimiter
语句,set
命令应该以分号结束。
你大概想要:
delimiter //
create trigger before_id_update
before update on users
for each row
begin
if new.id is null then
set new.id = new.username;
end if;
end
//
delimiter ;
请注意,这仅在 id
和 username
具有相同的数据类型(从它们的名称中看不出来)时才有意义。
希望在更新行时在 MYSQL table 上使用触发器,无论何时更新行。仅在 id 字段为 null 时设置 id
create trigger before_id_update
BEFORE UPDATE
ON USERS for each row
BEGIN
if id iS NULL THEN
SET id = username
END IF;
END
当前更新 table 行时没有任何反应
您的代码应该会引发语法错误,因为 id
和 username
是未定义的变量。如果要访问更新行上的值,请使用伪表 NEW
或 OLD
.
你的代码开头还需要一个delimiter
语句,set
命令应该以分号结束。
你大概想要:
delimiter //
create trigger before_id_update
before update on users
for each row
begin
if new.id is null then
set new.id = new.username;
end if;
end
//
delimiter ;
请注意,这仅在 id
和 username
具有相同的数据类型(从它们的名称中看不出来)时才有意义。