我想在表a中插入一行,但前提是表B中存在另一行。例如像这样的事情。。。
IF EXISTS (SELECT * FROM B WHERE id=1) INSERT INTO A (id, value1, value2) VALUES (1, 'foo', 'bar')
然而,这是行不通的。什么会?
INSERT INTO A (value1, value2, value3) SELECT 'foo', 'bar', 'foo' FROM B WHERE ID = 1
这里的一个潜在问题是,如果您的条件被满足多次,它将插入尽可能多的行,因此请将您的查询调整为该行,但它将执行您想要的操作,仅在满足select上的条件时插入。
this MySQL手册的一部分,它给出了一个选择的例子,但也许插入也会以类似的方式工作?