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

MySQL INSERT IF (персонализирани оператори if)

INSERT INTO TABLE
SELECT value_for_column1, value_for_column2, ...
FROM wherever
WHERE your_special_condition

Ако не бъдат върнати редове от избора (тъй като вашето специално условие е фалшиво), не се случва вмъкване.

Използване на вашата схема от въпрос (като приемем вашия id колоната е auto_increment ):

insert into orders (product_id, qty)
select 2, 20
where (SELECT qty_on_hand FROM products WHERE id = 2) > 20;

Това няма да вмъква редове, ако няма достатъчно наличност, в противен случай ще създаде реда за поръчка.

Добра идея между другото!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL срещу MySQL

  2. Форматирайте число като процент в MySQL

  3. Поддръжка на ScaleGrid DigitalOcean за MySQL, PostgreSQL и Redis™ вече е налична

  4. Отстраняване на неизправности:MySQL/MariaDB грешка #1044 и #1045 Достъпът е отказан за потребителя

  5. Съвети за мигриране от HAProxy към ProxySQL