首页 文章

SQL select和insert如果不存在

提问于
浏览
1

我想创建一个可以插入table1的SQL查询 . 此表引用table2和table2_id外键 .

到目前为止我的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中 .

谁知道怎么做?

1 回答

  • 2

    我建议您使用 insert . . . select 而不是 insert . . . values

    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 值的行 . 在这种情况下,这不会插入任何内容 .

相关问题