2011-06-02 101 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