mysql 当delog列值为空时,delog就等于当前行的dtupdate 怎么写sql
时间: 2024-02-17 07:01:35 浏览: 57
您可以使用如下的 SQL 语句实现您的需求:
```
UPDATE your_table SET delog = IFNULL(delog, dtupdate);
```
上述语句将会更新表中所有 delog 列为空的行,将其值设置为当前行的 dtupdate 列的值。如果 delog 列的值不为空,则不会进行更新操作。
需要注意的是,上述语句是一次性将所有符合条件的行进行更新的,如果您需要在插入新行或者更新某一行时自动触发该逻辑,可以使用 MySQL 的触发器进行实现。例如:
```
CREATE TRIGGER update_delog BEFORE INSERT ON your_table
FOR EACH ROW
BEGIN
SET NEW.delog = IFNULL(NEW.delog, NEW.dtupdate);
END;
```
上述触发器将会在每次插入新行之前触发,将新行的 delog 列的值设置为当前行的 dtupdate 列的值。如果您需要在更新某一行时触发该逻辑,可以将触发器类型改为 AFTER UPDATE。
阅读全文