Поиск по сайту:

Можно ли сделать вставку или обновление в одном и том же запросе MySQL?


Да, используйте ОБНОВЛЕНИЕ ДУБЛИКАЦИОННОГО КЛЮЧА. Сначала создадим таблицу:

mysql> create table DemoTable(Id int NOT NULL PRIMARY KEY, Number int);
Query OK, 0 rows affected (0.83 sec)

Вставьте несколько записей в таблицу с помощью команды вставки:

mysql> insert into DemoTable values(1,190) ON DUPLICATE KEY UPDATE Number=Number+10;
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable values(2,130) ON DUPLICATE KEY UPDATE Number=Number+10;
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable values(1,190) ON DUPLICATE KEY UPDATE Number=Number+10;
Query OK, 2 rows affected (0.14 sec)
mysql> insert into DemoTable values(2,130) ON DUPLICATE KEY UPDATE Number=Number+10;
Query OK, 2 rows affected (0.17 sec)

Отобразите все записи из таблицы с помощью оператора select:

mysql> select *from DemoTable;

Это даст следующий результат. Мы вставили и обновили записи в одном запросе:

+----+--------+
| Id | Number |
+----+--------+
| 1  | 200    |
| 2  | 140    |
+----+--------+
2 rows in set (0.00 sec)

Статьи по данной тематике: