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

MySQL условно вмъкване

Ако вашата СУБД не налага ограничения за това коя таблица избирате, когато изпълнявате вмъкване, опитайте:

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)

В това dual е таблица само с един ред (намерена първоначално в Oracle, сега също и в mysql). Логиката е, че операторът SELECT генерира един ред данни с необходимите стойности, но само когато стойностите не са вече намерени.

Като алтернатива вижте изявлението MERGE.



  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

  2. Как мога да преглеждам всички редове на таблица? (MySQL)

  3. MySQL COALESCE() Обяснено

  4. Коя е най-добрата структура на базата данни за съхраняване на многоезични данни?

  5. Как да използвам MySQLdb с Python и Django в OSX 10.6?