sql >> Database teknologi >  >> RDS >> Mysql

MySQL Conditional Insert

Hvis dit DBMS ikke pålægger begrænsninger for, hvilken tabel du vælger fra, når du udfører en indsættelse, prøv:

INSERT INTO x_table(instance, user, item) 
    SELECT 919191, 123, 456
        FROM dual
        WHERE NOT EXISTS (SELECT * FROM x_table
                             WHERE user = 123 
                               AND item = 456)

I denne dual er en tabel med kun en række (fundet oprindeligt i Oracle, nu også i mysql). Logikken er, at SELECT-sætningen genererer en enkelt række data med de nødvendige værdier, men kun når værdierne ikke allerede er fundet.

Alternativt kan du se på MERGE-sætningen.



  1. Sådan får du kortdagens navn fra en dato i MariaDB

  2. Internaler i de syv SQL Server-sorteringer – Del 2

  3. Introduktion til diagramtyper

  4. Sådan migreres MySQL fra Amazon EC2 til dit On-Prem Datacenter uden nedetid