我正在尝试执行mysql select insert query,如下所示。

INSERT INTO ACCOUNTS.TABLE1 (NAME,ID,STARTTIME,ENDTIME) SELECT NAME,ID,CREATIONTIME,EXPIRYTIME FROM ACCOUNTS.TABLE2 WHERE ...;

现在,如果表2中的EXPIRYTIME为空,那么我想将表1中的ENDTIME更新为当前时间戳。我已经用描述覆盖了这个时间戳字段的默认行为
ENDTIME TIMESTAMP NULL DEFAULT NULL

不知为什么。
在上面的select insert查询中是否可以包含一些类似if条件的内容,比如if(expirytime==null)然后将endtime更新为当前时间戳?

最佳答案

只需选择您想要的:

INSERT INTO ACCOUNTS.TABLE1 (NAME,ID,STARTTIME,ENDTIME)
SELECT NAME,ID,CREATIONTIME, ifnull(EXPIRYTIME, now())
FROM ACCOUNTS.TABLE2 WHERE ...;

10-07 19:10