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

Как да вмъкна в същата таблица в MySQL?

Понякога може да се наложи бързо да създадете много данни за тестване на натоварването. Можете да изберете и вмъкнете в същата таблица в MySQL. Този подход бързо увеличава съществуващите ви таблици. Дава много записи за игра. Ето няколко начина да го направите.

Вмъкване в същата таблица в MySQL

Синтаксис

INSERT INTO table_name ( field1, field2,...fieldN )
                       SELECT field1, field2, fieldN from table_name;

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

+------+------+------+
|   a  |   b  |   c  |
+------+------+------+
|   1  |   2  |   3  |
|   4  |   5  |   6  |
|   7  |   8  |   9  |
|   3  |   3  |   3  |
+------+------+------+

Вмъкнете в същата таблица в MySQL всички записи от таблица

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

Вмъкнете в същата таблица в MySQL някои записи от таблица

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

Може да получите грешка за дублирана стойност, ако едно от тези полета е първичен ключ или имате ограничение за уникалност за поле. Ето как можете да го избегнете.

Вмъкване в същата таблица в MySQL без дубликати

Синтаксис

INSERT INTO table_name ( field1, field2,...fieldN )
                       SELECT field1, field2, fieldN from table_name
                       ON DUPLICATE KEY
                       UPDATE primary_key_field=<expression> ;

Пример

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

+------+------+------+
|   a  |   b  |   c  |
+------+------+------+
|   1  |   2  |   3  |
|   4  |   5  |   6  |
|   7  |   8  |   9  |
+------+------+------+

Вмъкнете в същата таблица в MySQL всички записи от таблица

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

Вмъкнете в същата таблица в MySQL някои записи от таблица

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

Можете да прочетете повече за това как да направите групово вмъкване в MySQL

  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 има ли еквивалент на @@ROWCOUNT като в mssql?

  2. JSON_REMOVE() – Премахване на данни от JSON документ в MySQL

  3. MySQL добавя дни към дата

  4. Задълбочен поглед върху индексирането на база данни

  5. Каква е разликата между VARCHAR и CHAR?