我正在学习SQL,我处于必须将值插入数据库的情况下,只有当它不存在。只有插入时,如果唯一(检查2行)
我的tableview结构是这样的:
+----------+-----------+-----+-----+
| first_id | second_id | timestamp |
+----------+-----------+-----------+
我想只有插入,如果没有相同first_id
和second_id
例如,如果在桌子上有first_id 1
和second_id 2
,我重新加入,我不想再添加它。所以如果first_id和second_id行已经有值1和2,那么不要添加,但如果first_id
是3并且second_id
是1,那么我会允许插入。
这是我的查询ATM:
INSERT INTO `testtable`.`ids` (`first_id`, `second_id`) VALUES (:first_id, :second_id)
而且这样我试着用NOT EXISTS
但它不工作:
NOT EXISTS (SELECT first_id, second_id FROM `testtable`.`ids` WHERE first_id = : first_id AND second_id = : second_id) INSERT INTO `testtable`.`ids` (`first_id `, `second_id `) VALUES (: first_id, : second_id)
最后提到的查询给我的语法错误,但一旦我甚完整性违规,并告诉我检查文件。
我正在执行我的查询使用PHP ->query("");
函数。
我试图像IF NOT EXISTS
和NOT EXISTS
那样做,但那些都不起作用。我应该如何解决这个问题?
如果'first_id'为1且'second_id'为1或3,您可以允许插入吗?它是否必须是2才不插入? – Sajal
是的,如果这些值现在像'first_id'是2并且'second_id'是4那么我会允许的。 –