0

最初に選択せずに、特定の日時に基づくレコードを1つのクエリに挿入できるかどうか疑問に思っています。

例えば:

2分前の記録がない場合のみ挿入したい。

これはどのように達成されますか?

前もって感謝します

4

1 に答える 1

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の特別なテーブルであることに注意してください。

于 2012-05-25T20:43:41.670 に答える