sql >> Databáze >  >> RDS >> Mysql

MySQL Insert if Podmínka

Můžete udělat něco takového:

insert into cats_rel(cat_id, post_id)
    select 11, 32
    where not exists (select 1 from cats_rel where cat_id = 11 and post_id = 32);

EDIT:

Jejda. Výše uvedené nefunguje v MySQL, protože chybí from klauzule (funguje však v mnoha jiných databázích). V každém případě to obvykle píšu tak, že hodnoty vložím do poddotazu, takže se v dotazu objeví pouze jednou:

insert into cats_rel(cat_id, post_id)
    select toinsert.cat_id, toinsert.post_id
    from (select 11 as cat_id, 32 as post_id) toinsert
    where not exists (select 1
                      from cats_rel cr
                      where cr.cat_id = toinsert.cat_id and cr.post_id = toinsert.post_id
                     );


  1. Jak vynutit referenční integritu u dědičnosti jedné tabulky?

  2. Transakce MySQL:SELECT + INSERT

  3. php vrací nedefinovanou vlastnost

  4. Databáze není během migrace nakonfigurována laravel