2012-05-25 119 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