Meja kerja mysql menyalin baris dari satu tabel ke tabel lainnya


Untuk ini, gunakan pernyataan INSERT INTO SELECT. Mari kita buat tabel − terlebih dahulu

mysql> create table DemoTable1879
   (
   Id int,
   Name varchar(20)
   );
Query OK, 0 rows affected (0.00 sec)

Masukkan beberapa record ke dalam tabel menggunakan perintah insert −

mysql> insert into DemoTable1879 values(101,'Chris Brown');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1879 values(102,'David Miller');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1879 values(103,'Adam Smith');
Query OK, 1 row affected (0.00 sec)
_

Tampilkan semua catatan dari tabel menggunakan pernyataan pilih −

mysql> select * from DemoTable1879;

Ini akan menghasilkan output berikut -

+------+--------------+
| Id   | Name         |
+------+--------------+
|  101 | Chris Brown  |
|  102 | David Miller |
|  103 | Adam Smith   |
+------+--------------+
3 rows in set (0.00 sec)

Inilah kueri untuk membuat tabel kedua −

mysql> create table DemoTable1880
   (
   ClientId int,
   ClientName varchar(20)
   );
Query OK, 0 rows affected (0.00 sec)
_

Ini adalah kueri untuk menyalin baris dari satu tabel ke tabel lainnya −

mysql> insert into DemoTable1880(ClientId,ClientName) select Id,Name from DemoTable1879 where Id IN(101,103);
Query OK, 2 rows affected (0.00 sec)
Records: 2  Duplicates: 0  Warnings: 0

Tampilkan semua catatan dari tabel menggunakan pernyataan pilih −

mysql> select * from DemoTable1880;
_

Ini akan menghasilkan output berikut -

+----------+-------------+
| ClientId | ClientName  |
+----------+-------------+
|      101 | Chris Brown |
|      103 | Adam Smith  |
+----------+-------------+
2 rows in set (0.00 sec)

Meja kerja mysql menyalin baris dari satu tabel ke tabel lainnya


Meja kerja mysql menyalin baris dari satu tabel ke tabel lainnya

Artikel ini menjelaskan proses tabel salin MySQL. Pada artikel ini, Anda akan mempelajari bagaimana kami dapat menyalin data dari satu tabel ke tabel lainnya. Tabel-tabel ini bisa berada di database yang sama atau database yang berbeda. Proses copy table MySQL dapat menyalin dataset tertentu atau semua data dari tabel sumber ke tabel tujuan. Kami dapat menggunakan proses tabel salin MySQL untuk mereplikasi masalah yang terjadi pada server produksi, yang membantu pengembang memperbaiki masalah dengan cepat

Untuk menyalin data antar tabel, kami menggunakan kombinasi pernyataan CREATE TABLE dan SELECT. Jika Anda ingin menyalin kumpulan data tertentu dari tabel, kita dapat memfilter catatan dengan menambahkan klausa WHERE. Sintaks untuk menyalin tabel dan data adalah sebagai berikut

1

BUAT TABEL tabel_tujuan PILIH col_1,col_2, col_3.. dari source_table WHERE kondisi

Dalam sintaks,

  1. tabel_tujuan. Tentukan nama tabel tujuan. Kita dapat membuat tabel menggunakan struktur kolom dari tabel sumber. Jika tabel tujuan berada di database yang berbeda, Anda dapat menggunakan db_name. schema_name_. table_name_ format
  2. nama kolom. Jika Anda ingin mengisi kolom tertentu dari tabel sumber, Anda dapat menentukan nama kolom
  3. Source_table. Tentukan nama tabel sumber. Jika tabel sumber berada di database yang berbeda, maka Anda dapat menggunakan db_name. schema_name_. table_name_ format
  4. Kondisi. Tentukan kondisi yang akan diisi untuk memfilter rekaman. Jika Anda ingin menyalin kumpulan data tertentu dari tabel sumber, Anda dapat menggunakan klausa WHERE

Saat Anda menyalin data dari tabel sumber ke tabel tujuan, MySQL melakukan tugas berikut

  1. Buat tabel baru dengan nama yang ditentukan dalam parameter destination_table. Struktur tabel tujuan berisi kolom yang dikembalikan oleh pernyataan SELECT
  2. Salin data dari tabel sumber ke tabel tujuan

Sekarang, mari kita lihat beberapa contoh. Untuk demonstrasi, kita akan menggunakan database Sakila. Kami menggunakan meja kerja MySQL

Contoh 1. Salin seluruh tabel dengan data

Misalkan kita ingin menyalin data dari tabel film ke tabel movies_backup. Untuk melihat data, jalankan di bawah pernyataan SELECT

1

Pilih * dari film;

Meja kerja mysql menyalin baris dari satu tabel ke tabel lainnya
Meja kerja mysql menyalin baris dari satu tabel ke tabel lainnya

Untuk menyalin data dari film (tabel sumber) ke tabel film_backup (tujuan).

1

buat tabel movies_backup pilih * from movies;

Meja kerja mysql menyalin baris dari satu tabel ke tabel lainnya
Meja kerja mysql menyalin baris dari satu tabel ke tabel lainnya

Setelah data disalin, jalankan pernyataan SELECT untuk melihat data

1

Pilih * dari movies_backup;

Meja kerja mysql menyalin baris dari satu tabel ke tabel lainnya
Meja kerja mysql menyalin baris dari satu tabel ke tabel lainnya

Seperti yang Anda lihat, database telah disalin ke tabel movies_backup

Contoh 2. Salin sebagian data menggunakan klausa WHERE

Misalkan Anda ingin membuat tabel yang berisi daftar film yang ratingnya NC-17. Dalam contoh ini, tabel sumbernya adalah film, dan tabel tujuannya adalah tbl_movies_Rating_NC17. Untuk memfilter data, kami menggunakan klausa WHERE pada kolom rating

1

buat tabel tbl_movies_Rating_NC17 pilih * from movies WHERE rating='NC-17';

Meja kerja mysql menyalin baris dari satu tabel ke tabel lainnya
Meja kerja mysql menyalin baris dari satu tabel ke tabel lainnya

Setelah data disalin, jalankan pernyataan SELECT di tbl_movies_rating_NC17

1

pilih * dari tbl_movies_Rating_NC17

Meja kerja mysql menyalin baris dari satu tabel ke tabel lainnya
Meja kerja mysql menyalin baris dari satu tabel ke tabel lainnya

Seperti yang Anda lihat, data telah disalin

Contoh 3. Salin tabel di antara database

Dalam contoh ini, kita akan melihat bagaimana kita dapat menyalin data dari tabel sumber ke tabel tujuan di database lain. Sebagai demonstrasi, saya telah membuat database bernama DEV_SakilaDB, dan kami akan menyalin data dari tabel aktor dari database sakila ke tabel tblActor dari database DEV_SakilaDB

Kueri berikut membuat database baru bernama DEV_SakilaDB

1

Buat database DEV_SakilaDB;

Untuk menyalin data, kami akan menjalankan kueri berikut

1

buat tabel `DEV_SakilaDB`.`tblactor` pilih * . from `sakila`.`aktor`;

Meja kerja mysql menyalin baris dari satu tabel ke tabel lainnya
Meja kerja mysql menyalin baris dari satu tabel ke tabel lainnya

Setelah data disalin, jalankan pernyataan SELECT berikut

1

pilih * dari `DEV_SakilaDB`.`pengguna`;

Meja kerja mysql menyalin baris dari satu tabel ke tabel lainnya
Meja kerja mysql menyalin baris dari satu tabel ke tabel lainnya

Seperti yang Anda lihat, data telah disalin ke Dev_SakilaDB. tblActor meja

Contoh 4. Proses salin tabel MySQL untuk mengkloning tabel

Saat kita menggunakan proses copy table MySQL menggunakan CREATE TABLE. Pernyataan SELECT tidak membuat indeks, batasan, kunci utama, kunci asing yang terkait dengan tabel sumber. Jika Anda ingin mengkloning tabel sumber, kita dapat menggunakan metode berikut

  1. Untuk membuat tabel, gunakan CREATE TABLE destination_table LIKE source_table
  2. Untuk menyalin data, gunakan INSERT INTO destination_table SELECT * FROM source_table

Mari kita pahami dengan contoh sederhana. Kami menggunakan tabel aktor. Untuk melihat struktur tabel, kita dapat menggunakan pernyataan SHOW CREATE TABLE [tbl_name]. Jalankan kueri berikut

1

TAMPILKAN BUAT TABEL aktor;

Berikut adalah struktur tabel dari tabel aktor

1

2

3

4

5

6

7

8

BUAT TABEL `aktor` (

    `actor_id` kecil unsigned NOT NULL AUTO_INCREMENT,

    `nama_depan` varchar(45) NOT NULL,

    `nama_belakang` varchar(45) NOT NULL,

    `last_update` stempel waktu NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

    UTAMA KUNCI (`actor_id`),

    KEY `idx_actor_last_name` (`last_name`)

  ) ENGINE=InnoDB AUTO_INCREMENT=201 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci

Sekarang, mari kita jalankan CREATE TABLE. Pernyataan SELECT untuk menyalin data. Tabel sumber adalah aktor dan tabel tujuan adalah tblActor_backup. Kueri mengikuti

1

buat tabel `tblActor_backup` select * from `actor`;

Setelah data disalin, jalankan pernyataan SHOW CREATE TABLE untuk melihat struktur tabel tblActor_backup

1

TAMPILKAN BUAT TABEL tblActor_backup;

Struktur tabel tblActor_backup adalah sebagai berikut

1

2

3

4

5

6

BUAT TABEL `tblactor_backup` (

    `actor_id` kecil unsigned NOT NULL DEFAULT '0',

    `nama_depan` varchar(45) NOT NULL,

    `nama_belakang` varchar(45) NOT NULL,

    `last_update` stempel waktu NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci

Seperti yang Anda lihat pada skrip di atas, kunci utama tabel tblActor tidak ada. Sekarang, mari kita jalankan CREATE TABLE. SUKA. pernyataan untuk membuat tabel

1

buat tabel `tblActor_backup` LIKE `actor`;

Setelah data disalin, jalankan SHOW CREATE TABLE untuk melihat struktur tabel tblActor_backup

1

TAMPILKAN BUAT TABEL `tblActor_backup`;

1

2

3

4

5

6

7

8

BUAT TABEL `tblactor_backup` (

    `actor_id` kecil unsigned NOT NULL AUTO_INCREMENT,

    `nama_depan` varchar(45) NOT NULL,

    `nama_belakang` varchar(45) NOT NULL,

    `last_update` stempel waktu NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

    UTAMA KUNCI (`actor_id`),

    KEY `idx_actor_last_name` (`last_name`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci

Seperti yang Anda lihat, skrip CREATE TABLE memiliki kunci utama

Sekarang jalankan INSERT INTO. Pernyataan SELECT untuk menyisipkan data dari tabel sumber ke tabel tujuan

1

MASUKKAN KELUAR `tblActor_backup` select * from `actor`;

Meja kerja mysql menyalin baris dari satu tabel ke tabel lainnya
Meja kerja mysql menyalin baris dari satu tabel ke tabel lainnya

Jalankan pernyataan SELECT untuk melihat data

1

Pilih * dari `tblActor_backup`

Keluaran Kueri

Meja kerja mysql menyalin baris dari satu tabel ke tabel lainnya
Meja kerja mysql menyalin baris dari satu tabel ke tabel lainnya

Seperti yang Anda lihat, data telah disalin ke tabel tblActor_backup

Ringkasan

Pada artikel ini, kita belajar tentang proses copy table MySQL. Untuk menyalin, Kita bisa menggunakan CREATE TABLE. pernyataan PILIH. Kami juga mempelajari pernyataan CREATE TABLE USING untuk membuat tiruan dari tabel sumber dan menggunakan pernyataan INSERT INTO SELECT untuk menyalin data. Kami mempelajari metode ini menggunakan berbagai contoh

Bagaimana cara menyalin baris dari satu tabel ke tabel lainnya di MySQL?

Jika Anda ingin menyalin baris tabel sumber yang ada ke tabel tujuan baru, pertama-tama Anda harus membuat tabel tujuan seperti tabel sumber. .
buat tabel destination_table seperti source_table
masukkan ke destination_table pilih * dari source_table

Bagaimana cara menyalin baris dari satu tabel ke tabel lainnya di SQL?

Pernyataan INSERT INTO SELECT menyalin data dari satu tabel dan menyisipkannya ke tabel lain. Pernyataan INSERT INTO SELECT mensyaratkan bahwa tipe data dalam tabel sumber dan target cocok. Catatan. Rekaman yang ada di tabel target tidak terpengaruh.

Bagaimana cara menyalin seluruh baris di MySQL?

Saya hanya perlu melakukan ini dan ini adalah solusi manual saya. .
Di phpmyadmin, periksa baris yang ingin Anda salin
Di bagian bawah di bawah operasi hasil kueri, klik 'Ekspor'
Pada halaman selanjutnya centang 'Save as file' lalu klik 'Go'