有条件地插入一行
我想在表 A 中插入一行,但前提是表 B 中存在另一行。例如这样的事情...
IF EXISTS (SELECT * FROM B WHERE id=1)
INSERT INTO A
(id, value1, value2)
VALUES (1, 'foo', 'bar')
但是这不起作用。会怎样?
I'd like to insert a row into table A, but only if another row in table B exists. For example something like this...
IF EXISTS (SELECT * FROM B WHERE id=1)
INSERT INTO A
(id, value1, value2)
VALUES (1, 'foo', 'bar')
However that doesn't work. What will?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这里的一个潜在问题是,如果多次满足您的条件,它将插入尽可能多的行,因此请调整您的查询,但它会执行您想要的操作,仅在满足选择上的条件时才插入。
One potential problem here is if your condition is met more than once it will insert as many rows so adjust your query to that, but it will do what you want, only insert if the conditions on the select are met.
看看这个 MySQL 手册的一部分,它给出了 SELECT 的示例,但也许 INSERT 也可以以类似的方式工作?
Have a look at this piece of MySQL manual, it gives an example with SELECT, but maybe INSERT would also work in a similar fashion?