SQL - Tabel Klon
Mungkin ada situasi ketika Anda memerlukan salinan tabel yang tepat dan perintah CREATE TABLE ... atau SELECT ... tidak sesuai dengan tujuan Anda karena salinan harus menyertakan indeks yang sama, nilai default, dan sebagainya.
Jika Anda menggunakan MySQL RDBMS, Anda dapat menangani situasi ini dengan mengikuti langkah-langkah yang diberikan di bawah ini -
Gunakan perintah SHOW CREATE TABLE untuk mendapatkan pernyataan CREATE TABLE yang menentukan struktur tabel sumber, indeks, dan semuanya.
Ubah pernyataan untuk mengubah nama tabel menjadi tabel klon dan jalankan pernyataan. Dengan cara ini Anda akan memiliki tabel klon yang tepat.
Secara opsional, jika Anda ingin konten tabel disalin juga, keluarkan pernyataan INSERT INTO atau SELECT juga.
Contoh
Coba contoh berikut untuk membuat tabel klon untuk TUTORIALS_TBL yang strukturnya adalah sebagai berikut -
Step 1 - Dapatkan struktur lengkap tentang tabel.
SQL> SHOW CREATE TABLE TUTORIALS_TBL \G;
*************************** 1. row ***************************
Table: TUTORIALS_TBL
Create Table: CREATE TABLE 'TUTORIALS_TBL' (
'tutorial_id' int(11) NOT NULL auto_increment,
'tutorial_title' varchar(100) NOT NULL default '',
'tutorial_author' varchar(40) NOT NULL default '',
'submission_date' date default NULL,
PRIMARY KEY ('tutorial_id'),
UNIQUE KEY 'AUTHOR_INDEX' ('tutorial_author')
) TYPE = MyISAM
1 row in set (0.00 sec)
Step 2 - Ubah nama tabel ini dan buat tabel lain.
SQL> CREATE TABLE `CLONE_TBL` (
-> 'tutorial_id' int(11) NOT NULL auto_increment,
-> 'tutorial_title' varchar(100) NOT NULL default '',
-> 'tutorial_author' varchar(40) NOT NULL default '',
-> 'submission_date' date default NULL,
-> PRIMARY KEY (`tutorial_id'),
-> UNIQUE KEY 'AUTHOR_INDEX' ('tutorial_author')
-> ) TYPE = MyISAM;
Query OK, 0 rows affected (1.80 sec)
Step 3- Setelah menjalankan langkah 2, Anda akan mengkloning tabel di database Anda. Jika Anda ingin menyalin data dari tabel lama, Anda dapat melakukannya dengan menggunakan pernyataan INSERT INTO ... SELECT.
SQL> INSERT INTO CLONE_TBL (tutorial_id,
-> tutorial_title,
-> tutorial_author,
-> submission_date)
-> SELECT tutorial_id,tutorial_title,
-> tutorial_author,submission_date,
-> FROM TUTORIALS_TBL;
Query OK, 3 rows affected (0.07 sec)
Records: 3 Duplicates: 0 Warnings: 0
Akhirnya, Anda akan memiliki tabel klon yang tepat seperti yang Anda inginkan.