2011-06-02 69 views
1

我想执行mysql选择插入查询如下。现在当执行mysql插入选择查询 - 我们可以做条件检查吗?

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

,如果EXPIRYTIME在表2为空,然后我想在表1中ENDTIME更新到当前的时间戳。我已通过描述覆盖此时间戳字段的默认行为

ENDTIME TIMESTAMP NULL DEFAULT NULL 

出于某种原因。

是否有可能在上面选择的插入查询中包含if if条件说if(expirytime == null)然后将endtime更新为当前时间戳?

回答

3

只需选择你想要的东西:

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

简单而伟大!谢谢 – ihavprobs 2011-06-02 12:34:52

1
INSERT INTO ACCOUNTS.TABLE1 (NAME,ID,STARTTIME,ENDTIME) 
SELECT NAME,ID,CREATIONTIME,if(EXPIRYTIME is null,now(),expirytime) 
FROM ACCOUNTS.TABLE2 WHERE ...; 
+0

谢谢,我会检查它。 – ihavprobs 2011-06-02 12:54:23

0

如何使用插入trigger做到这一点?

+0

谢谢,我会检查这个../ – ihavprobs 2011-06-02 12:53:57