Looking to use a trigger on a MYSQL table when the row is updated, anytime the row is updated. Only setting the id if the id field is null
x
create trigger before_id_update
BEFORE UPDATE
ON USERS for each row
BEGIN
if id iS NULL THEN
SET id = username
END IF;
END
Currently nothing is happening when the table row is updated
Advertisement
Answer
Your code should raise a syntax error, since id
and username
are undefined variables. If you want to access the values on the updated row, use pseudo-tables NEW
or OLD
.
You also need a delimiter
statement at the beginning of your code, and the set
command should be terminated with a semi-colon.
You presumably want:
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 ;
Note that this only makes sense if both id
and username
have the same datatype (which is not obvious from their names).