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

АКО НЕ СЪЩЕСТВУВА НЕ РАБОТИ

MySQL не разрешава if логика, освен ако не сте в блок за програмиране (съхранена процедура, тригер или функция).

За щастие можете да направите същото с WHERE логика:

INSERT INTO user 
    SELECT 'Rutvij', 'python', 25
    FROM DUAL
    WHERE NOT EXISTS (SELECT 1 FROM user WHERE name = 'Rutvij' AND lang = 'python')
    UNION ALL
    SELECT 'Kanzaria', 'python', 25
    FROM DUAL
    WHERE EXISTS (SELECT 1 FROM user WHERE name = 'Rutvij' AND lang = 'python');

MySQL трябва да обработи SELECT преди INSERT , така че трябва да се вмъкне само един ред.

Или можете да направите това като две INSERT s, но в обратния ред:

INSERT INTO user 
    SELECT 'Kanzaria', 'python', 25
    FROM DUAL
    WHERE EXISTS (SELECT 1 FROM user WHERE name = 'Rutvij' AND lang = 'python');

INSERT INTO user 
    SELECT 'Rutvij', 'python', 25
    FROM DUAL
    WHERE NOT EXISTS (SELECT 1 FROM user WHERE name = 'Rutvij' AND lang = 'python');


  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 с PHP?

  2. Не мога да извадя json от mysql varchar, но int

  3. Как да заключвам изключително mysql база данни?

  4. Pandas прочете sql integer стана float

  5. Извикване на REST API от тригер или съхранена процедура в mysql?