我正在尝试执行mysql select insert query,如下所示。
INSERT INTO ACCOUNTS.TABLE1 (NAME,ID,STARTTIME,ENDTIME) SELECT NAME,ID,CREATIONTIME,EXPIRYTIME FROM ACCOUNTS.TABLE2 WHERE ...;
现在,如果table2中的EXPIRYTIME为null,那么我想将table1中的ENDTIME更新为当前时间戳。我已通过描述
覆盖此时间戳字段的默认行为ENDTIME TIMESTAMP NULL DEFAULT NULL
出于某种原因。
在上面的选择插入查询中是否可以包含一些像if条件说if(expirytime == null)然后将endtime更新为当前时间戳?
答案 0 :(得分:3)
只需选择您想要的内容:
INSERT INTO ACCOUNTS.TABLE1 (NAME,ID,STARTTIME,ENDTIME)
SELECT NAME,ID,CREATIONTIME, ifnull(EXPIRYTIME, now())
FROM ACCOUNTS.TABLE2 WHERE ...;
答案 1 :(得分:1)
INSERT INTO ACCOUNTS.TABLE1 (NAME,ID,STARTTIME,ENDTIME)
SELECT NAME,ID,CREATIONTIME,if(EXPIRYTIME is null,now(),expirytime)
FROM ACCOUNTS.TABLE2 WHERE ...;
答案 2 :(得分:0)
如何使用插入trigger来执行此操作?