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

Как да направя групово вмъкване в MySQL?

Групово вмъкване в MySQL е, когато трябва да вмъкнете много записи в таблица наведнъж. Може да се използва за бързо създаване на данни за тестване. Уморително е да се пренаписва операторът за вмъкване за всеки ред. Ето как можете да вмъкнете групово в MySQL.

Групово вмъкване в MySQL

Синтаксис

INSERT INTO table_name ( field1, field2,...fieldN )
                       VALUES
                       ( a1, a2,...aN ),( b1, b2,...bN ),..;

a1, a2, a3,.. – стойности за поле 1
b1, b2, b3,.. – стойности за поле2
c1, c2, c3,.. – стойности за поле3

Пример
За таблица име_на_таблица с колониа, б, в

mysql> INSERT INTO table_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9),(3,3,3);
+------+------+------+
|   a  |   b  |   c  |
+------+------+------+
|   1  |   2  |   3  |
|   4  |   5  |   6  |
|   7  |   8  |   9  |
|   3  |   3  |   3  |
+------+------+------+

Както можете да видите, груповото вмъкване в MySQL позволява дублиране на редове/колони. Това може да доведе до дублиране на първични ключове. Ето как можете да го избегнете.

Групово вмъкване в MySQL без дубликати

Използваме клауза ON DUPLICATE KEY. Той открива дублиращи се стойности на първичния ключ. Добавяме и клауза UPDATE, за да актуализираме дублираната стойност.

Синтаксис

INSERT INTO table_name ( field1, field2,...fieldN )
                       VALUES
                       ( a1, a2,...aN ),( b1, b2,...bN ),..
                       ON DUPLICATE KEY
                       UPDATE primary_key_field=<expression> ;

a1, a2, a3,.. – стойности за поле 1
b1, b2, b3,.. – стойности за поле2
c1, c2, c3,.. – стойности за поле3

Пример
За таблица име_на_таблица с колониа, б, в и c е първичният ключ

mysql> INSERT INTO table_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9),(3,3,3)
ON DUPLICATE KEY UPDATE c=c+1;
+------+------+------+
|   a  |   b  |   c  |
+------+------+------+
|   1  |   2  |   3  |
|   4  |   5  |   6  |
|   7  |   8  |   9  |
|   3  |   3  |   4  |
+------+------+------+

Можете също да актуализирате стойност въз основа на други колони

  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 TEXT срещу BLOB срещу CLOB

  2. Използване на клауза union и order by в mysql

  3. Преобразувайте текст в число в MySQL заявка

  4. Как да стартирате MySQL или MariaDB Galera Cluster - актуализиран

  5. Намиране на всички родители в таблицата на mysql с единична заявка (рекурсивна заявка)