Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Cara Menggandakan Tabel di MySQL

Terkadang Anda mungkin perlu menyalin data dari satu tabel ke tabel lainnya di MySQL atau menyalin tabel di MySQL. Berikut cara menduplikasi tabel di MySQL. Anda dapat menggunakannya untuk mengkloning tabel di MySQL atau menyalin struktur tabel, atau bahkan menyalin tabel dari satu database ke database lainnya.

Cara Menggandakan Tabel di MySQL

Berikut adalah langkah-langkah untuk menduplikasi tabel di MySQL. Ada kasus penggunaan yang berbeda untuk menyalin data dari satu tabel ke tabel lainnya. Kami akan melihat masing-masing secara detail.

MySQL Menyalin data dari satu tabel ke tabel baru

Jika Anda perlu menduplikasi tabel di MySQL ke tabel baru, Anda perlu menggunakan pernyataan CREATE TABLE dan SELECT seperti yang ditunjukkan di bawah ini

CREATE TABLE new_table 
SELECT column, column2, column3 
FROM
    existing_table;

Katakanlah Anda memiliki tabel produk

mysql> select * from products;
+------------+--------------------+-------+
| product_id | product_name       | price |
+------------+--------------------+-------+
|          1 | iPhone 11          |   400 |
|          2 | Samsung Galaxy A50 |   250 |
+------------+--------------------+-------+

Berikut kueri SQL untuk menyalin produk tabel menjadi tabel baru yang disebut produk_baru

mysql> create table new_products
       select *
       from products;

mysql> select * from new_products;
+------------+--------------------+-------+
| product_id | product_name       | price |
+------------+--------------------+-------+
|          1 | iPhone 11          |   400 |
|          2 | Samsung Galaxy A50 |   250 |
+------------+--------------------+-------+

Penting untuk dicatat bahwa tabel baru akan dibuat hanya jika tidak ada. Jika tidak, Anda akan mendapatkan kesalahan. Untuk menghindari kesalahan saat Anda menggandakan tabel di MySQL, Anda dapat menggunakan IF NOT EXIST dalam pernyataan CREATE TABLE, seperti yang ditunjukkan di bawah ini.

mysql> create table if not exist new_products
       select *
       from products;

Bonus Baca :Prosedur Tersimpan MySQL Dengan Parameter

Untuk menyalin hanya sebagian data dari satu tabel ke tabel baru, Anda dapat menggunakan kondisi WHERE dalam pernyataan SELECT Anda seperti yang ditunjukkan

CREATE TABLE new_table 
SELECT column1, column2, column3 
FROM
    existing_table
WHERE
    conditions;

Berikut kueri SQL untuk menyalin sebagian data dari produk tabel menjadi tabel baru bernama new_products2

mysql> create table new_products2
       select *
       from products
       where product_id=1;

mysql> select * from new_products2;
+------------+--------------+-------+
| product_id | product_name | price |
+------------+--------------+-------+
|          1 | iPhone 11    |   400 |
+------------+--------------+-------+

Bonus Baca :Cara Membuat Composite Primary Key di MySQL

MySQL Salin Struktur Tabel ke Tabel Baru

Kueri di atas hanya menyalin tabel dan data. Mereka tidak akan menyalin objek tabel seperti kunci utama, indeks, batasan, pemicu. Untuk menyalin struktur dan data tabel, Anda perlu menggunakan pernyataan CREATE TABLE dengan kata kunci LIKE, seperti yang ditunjukkan di bawah ini

CREATE TABLE IF NOT EXISTS new_table LIKE existing_table;

Katakanlah Anda memiliki pesanan tabel dengan kunci utama

mysql> describe orders;
+--------------+--------------+------+-----+-------------------+----------------+
| Field        | Type         | Null | Key | Default           | Extra          |
+--------------+--------------+------+-----+-------------------+----------------+
| id           | int(11)      | NO   | PRI | NULL              | auto_increment |
| product_name | varchar(255) | NO   |     | NULL              |                |
| order_date   | date         | YES  |     | NULL              |                |
| price        | int(11)      | NO   |     | NULL              |                |
| description  | text         | YES  |     | NULL              |                |
| created_at   | timestamp    | NO   |     | CURRENT_TIMESTAMP |                |
+--------------+--------------+------+-----+-------------------+----------------+

dan Anda ingin menyalin struktur pesanan untuk pesanan_baru meja. Berikut query SQL untuk menyalin struktur tabel ke tabel baru.

mysql> create table new_orders like orders;

mysql> describe new_orders;
+--------------+--------------+------+-----+-------------------+----------------+
| Field        | Type         | Null | Key | Default           | Extra          |
+--------------+--------------+------+-----+-------------------+----------------+
| id           | int(11)      | NO   | PRI | NULL              | auto_increment |
| product_name | varchar(255) | NO   |     | NULL              |                |
| order_date   | date         | YES  |     | NULL              |                |
| price        | int(11)      | NO   |     | NULL              |                |
| description  | text         | YES  |     | NULL              |                |
| created_at   | timestamp    | NO   |     | CURRENT_TIMESTAMP |                |
+--------------+--------------+------+-----+-------------------+----------------+

Bonus Baca :Cara Memotong Tabel di MySQL

MySQL Salin Data dari satu tabel ke tabel yang ada

Pernyataan di atas akan membuat tabel baru dengan struktur tabel lama. Maka Anda perlu menggunakan pernyataan INSERT untuk menyalin data dari tabel lama ke tabel baru.

INSERT new_table
SELECT * FROM existing_table;

Berikut kueri SQL untuk menyalin data dari pesanan ke tabel yang ada new_orders

mysql> insert new_orders
       select * from orders;

mysql> select * from orders;
+----+--------------+------------+-------+-------------+---------------------+
| id | product_name | order_date | price | description | created_at          |
+----+--------------+------------+-------+-------------+---------------------+
|  1 | A            | 2020-07-01 |   150 | New product | 2020-06-01 00:00:00 |
|  2 | B            | 2020-07-01 |   235 | Old product | 2020-06-15 00:00:00 |
+----+--------------+------------+-------+-------------+---------------------+

Bonus Baca :MySQL DROP VIEW

Menyalin Tabel MySQL dari Satu database ke database lain

Jika Anda ingin menduplikasi tabel di MySQL dari database ke database lain, maka cukup sertakan nama database di nama tabel Anda, seperti yang ditunjukkan di bawah ini dalam huruf tebal

CREATE TABLE destination_db.new_table 
LIKE source_db.existing_table;

INSERT destination_db.new_table 
SELECT *
FROM source_db.existing_table;

Pernyataan pertama akan menduplikasi struktur tabel di MySQL dari database sumber (misalnya source_db) ke yang lain (misalnya destination_db). Pernyataan kedua akan menyalin data dari satu tabel ke tabel lainnya.

Ganti source_db dan destination_db dalam kueri di atas dengan basis data sumber dan tujuan masing-masing.

Semoga artikel ini dapat membantu Anda menggandakan tabel di MySQL. Harap berhati-hati saat Anda menduplikasi tabel di MySQL, dengan jumlah record yang banyak, karena dapat memakan banyak waktu &sumber daya.

Ubiq memudahkan untuk memvisualisasikan data dalam hitungan menit, dan memantau di dasbor waktu nyata. Cobalah Hari ini!

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Menyebarkan Database MySQL Chamilo untuk Ketersediaan Tinggi

  2. Aktifkan Python untuk Terhubung ke MySQL melalui SSH Tunneling

  3. Cara Mengaktifkan Operator Penggabungan Pipa di MySQL

  4. MySQL di Cloud - Migrasi Online dari Amazon RDS ke Server Anda sendiri:Part2

  5. Instal MySQL:ERROR:Gagal membuat ekstensi asli permata