Mysql
 sql >> Baza danych >  >> RDS >> Mysql

MySQL INSERT, jeśli nie istnieje (nie używa klucza podstawowego)

1) Czy możesz dodać UNIQUE ograniczenie na (myid, theirid) ? Jeśli tak, dodaj to ograniczenie i użyj:

INSERT INTO mytable (myid, theirid) 
  VALUES (5, 1) ;

i zignoruj ​​ostrzeżenia o produkcji (lub zastąp powyższe przez INSERT IGNORE )

2) Jeśli nie możesz dodać takiego ograniczenia (np. czasami chcesz zezwolić na takie duplikaty, a innym razem nie), możesz użyć tego:

INSERT INTO mytable (myid, theirid) 
  SELECT 5, 1 
  FROM dual 
  WHERE NOT EXISTS
        ( SELECT *
          FROM mytable
          WHERE myid = 5
            AND theirid = 1
        ) ; 


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. JOIN dane z tej samej tabeli

  2. Jak połączyć się z MySQL za pomocą RIDE

  3. Jak zaimplementować dwukierunkowy unikalny indeks w wielu kolumnach

  4. Jak uzyskać wymiar zmiennej DECLAREd w SP?

  5. python odo sql AssertionError:datashape musi być typem rekordu, otrzymał 0 * {...}