DB2 Insert Statement Problem mit NOT EXISTS

  • Hallo zusammen,

    Ich hab folgendes Problem: Ich will in eine Tabelle (ID, name) einen neuen Namen einfügen und das nur wenn er nicht bereits existiert.

    In MS SQL hab ich das so gelöst:

    SQL
    INSERT INTO person (name)
      SELECT ('<name>') WHERE NOT EXISTS (
        SELECT * FROM person WHERE name = '<name>')

    in MySQL so:

    SQL
    INSERT IGNORE INTO person (name) SELECT '<name>')

    in DB2 bring ich das aber einfach nicht her, troz unzähliger Beispiele die ich mir angesehen hab. Folgendes hab ich versucht bis jetzt:

    SQL
    INSERT INTO person (name)
      SELECT ('<name>') WHERE NOT EXISTS (
        SELECT * FROM person WHERE name='<name'>)

    weiters hab ich es auch mit MERGE versucht:

    Code
    MERGE INTO Person A
    USING ('<name>') B(name)
    ON A.name = B.name
    WHEN NOT MATCHED THEN
    INSERT VALUES (B.name)
    ELSE IGNORE

    Leider alles ohne Erfolg. Jetzt steh ich irgendwie an. Ich versteh die DB2 einfach nicht :wein:

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!