2012-05-25 176 views
0

我想知道是否有可能基於特定的日期/時間在一個查詢中插入記錄,而無需先選擇它。MySQL插入條件日期時間

例如:

我想插入只有當沒有2分鐘前紀錄。

這將如何實現?

在此先感謝

回答

2

使用下面的語句來代替INSERT INTO table_name VALUES (1,'foobar')

INSERT INTO foobar (foobar_id,display_name,ctime) 
SELECT 42,'foobar',CURRENT_TIMESTAMP() 
FROM DUAL 
WHERE NOT EXISTS (
    SELECT 1 
    FROM foobar 
    WHERE mtime > CURRENT_TIMESTAMP() - INTERVAL 2 MINUTE 
); 

的訣竅是:找到一個select語句,返回與插入的列一排,當且僅當應該插入行 - 最後將INSERT INTO table_name放在它的前面。請注意,表DUAL是MySQL和其他DBMS中的特殊表。

+0

你可以花你回答一個foo數據的例子嗎? – John

+0

你在哪裏放置要插入的變量? (VALUES()) – John

+0

@John:要插入的值是「42」和「foobar」。 – nosid