我在形成条件插入时遇到困难
我有x_table的列(实例,用户,项目),其中实例ID是唯一的。我只想在用户已经没有给定项目的情况下插入新行。
例如,尝试插入instance = 919191 user = 123 item = 456
Insert into x_table (instance, user, item) values (919191, 123, 456) ONLY IF there are no rows where user=123 and item=456 朝正确方向的任何帮助或指导将不胜感激。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
如果您的DBMS在执行插入操作时不限制从哪个表中选择,请尝试:
INSERT INTO x_table(instance, user, item) SELECT 919191, 123, 456 FROM dual WHERE NOT EXISTS (SELECT * FROM x_table WHERE user = 123 AND item = 456) 在这里,dual是一个只有一行的表(最初在Oracle中找到,现在也在mysql中)。逻辑是SELECT语句生成具有所需值的单行数据,但仅当尚未找到这些值时才这样做。
或者,查看MERGE语句。来源:stack overflow