我想在表 A 中插入一行,但前提是表 B 中存在另一行。例如像这样的东西......
IF EXISTS (SELECT * FROM B WHERE id=1)
INSERT INTO A
(id, value1, value2)
VALUES (1, 'foo', 'bar')
然而,这是行不通的。会怎样?
我想在表 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
这里的一个潜在问题是,如果您的条件多次满足,它将插入尽可能多的行,因此请调整您的查询,但它会执行您想要的操作,只有在满足选择条件时才插入。
看看这篇MySQL 手册,它给出了一个 SELECT 的例子,但也许 INSERT 也可以以类似的方式工作?