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

MySQL INSERT IF (niestandardowe instrukcje if)

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

Jeśli żadne wiersze nie zostaną zwrócone z wyboru (ponieważ twój specjalny warunek jest fałszywy), wstawienie nie nastąpi.

Korzystanie ze schematu z pytania (zakładając Twój id kolumna to auto_increment ):

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

Nie wstawi to żadnych wierszy, jeśli nie ma wystarczającej ilości zapasów, w przeciwnym razie utworzy wiersz zamówienia.

Przy okazji fajny pomysł!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak zarządzać bazami danych za pomocą phpMyAdmin

  2. Jak porównać dwie kolumny w MySQL

  3. Nie możesz określić tabeli docelowej do aktualizacji w klauzuli FROM

  4. Dostrajanie wydajności zapytań MySQL

  5. Jak dodać opcję do sql_mode w MySQL bez utraty istniejących ustawień?