0

我想在表 A 中插入一行,但前提是表 B 中存在另一行。例如像这样的东西......

IF EXISTS (SELECT * FROM B WHERE id=1)
    INSERT INTO A
        (id, value1, value2)
        VALUES (1, 'foo', 'bar')

然而,这是行不通的。会怎样?

4

2 回答 2

3
INSERT INTO A (value1, value2, value3)
    SELECT 'foo', 'bar', 'foo' FROM B WHERE ID = 1

这里的一个潜在问题是,如果您的条件多次满足,它将插入尽可能多的行,因此请调整您的查询,但它会执行您想要的操作,只有在满足选择条件时才插入。

于 2010-07-22T16:48:45.410 回答
0

看看这篇MySQL 手册,它给出了一个 SELECT 的例子,但也许 INSERT 也可以以类似的方式工作?

于 2010-07-22T16:45:05.143 回答