mysql - SQL 选择并插入(如果不存在)

标签 mysql sql insert case

我想创建一个可以插入到表 1 中的 sql 查询。此表使用 table2_id 外键引用 table2。

到目前为止,我的 sql 看起来像这样:

INSERT INTO table1 (table1_id, name, date, table2_id) 
VALUES (1, "somename", "29.04.2014", (SELECT id FROM table 2 WHERE table2.name = "BOB")  )

如果找不到 table2.name,我还想将值插入 table2,然后将此键插入 table1。

有人知道怎么做吗?

最佳答案

我建议您使用 insert 。 . .选择 而不是 insert 。 . .值(value)观:

INSERT INTO hovedenhet (organisasjonsnummer, navn, stiftelsesdato, registreringsdatoEnhetsregisteret, organisasjonsform_id) 
    SELECT 813550202, 'SAMEIET SCHWEIGAARDSGATE 21-23', '10.01.2014', '29.04.2014', id
    FROM organisasjonsformhovedenhet oh
    WHERE oh.organisasjonsform = 'BOB';

如果没有匹配项,您的原始查询将为最后一列插入具有 NULL 值的行。在这种情况下,这不会插入任何内容。

关于mysql - SQL 选择并插入(如果不存在),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28609240/

相关文章:

sql - 根据多列删除重复项

mysql - 如何插入/更新可能基于不同记录的存在而存在的关系记录

string - 向现有字符串添加一个字符

c# - DataGridView 不显示数据库中带有空图像的所有值

php - Mysql插入编码问题

mysql - 我有一个数据库。如何创建使用两个表中的信息的触发器?

arrays - 如何将键值对象插入redis中的lua表

mysql - 如何使用加入从选择中更新

php - 特殊字符插入MySQL

mysql - 'order clause' 中的未知列