Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL INSERT, ако не съществува (без използване на първичен ключ)

1) Можете ли да добавите UNIQUE ограничение върху (myid, theirid) ? Ако да, добавете това ограничение и използвайте:

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

и игнорирайте предупрежденията за производство (или заменете горното с INSERT IGNORE )

2) Ако не можете да добавите такова ограничение (напр. понякога искате да разрешите такива дубликати, а друг път не), можете да използвате това:

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. Възстановете MySQL DB с Unicode знаци (арабски и кюрдски) във формат .gz

  2. Как да проверя номера на порта по подразбиране за mysql връзка? Връзката не работи! jdbc връзка

  3. Стойността на JCombobox се извлича от My Sql

  4. Не може да се създаде източник на данни с mysql

  5. Как мога да напиша MySQL търсене, което може да компенсира грешно написаните данни?