最初に選択せずに、特定の日時に基づくレコードを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の特別なテーブルであることに注意してください。