MySQL - Tabloları Klonla
Bir tablonun tam bir kopyasına ihtiyaç duyduğunuz bir durum olabilir ve CREATE TABLE ... SELECT kopyanın aynı dizinleri, varsayılan değerleri vb. içermesi gerektiğinden amaçlarınıza uygun değildir.
Bu durumu aşağıda verilen adımları takip ederek halledebilirsiniz -
Kaynak tablonun yapısını, dizinlerini ve tümünü belirten bir CREATE TABLE ifadesi almak için SHOW CREATE TABLE kullanın.
Tablo adını klon tablosununkiyle değiştirmek ve ifadeyi yürütmek için ifadeyi değiştirin. Bu şekilde, tam klon tablosuna sahip olacaksınız.
İsteğe bağlı olarak, tablo içeriğinin de kopyalanması gerekiyorsa, bir INSERT INTO ... SELECT deyimi de yayınlayın.
Misal
Aşağıdaki örneği deneyerek bir klon tablosu oluşturmayı deneyin. tutorials_tbl.
Step 1 - Masanın tüm yapısını alın.
mysql> 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)
ERROR:
No query specified
Step 2 - Bu tabloyu yeniden adlandırın ve başka bir tablo oluşturun.
mysql> 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- 2. adımı gerçekleştirdikten sonra, veritabanınızda bir klon tablosu oluşturacaksınız. Eski tablodan veri kopyalamak istiyorsanız, bunu INSERT INTO ... SELECT deyimini kullanarak yapabilirsiniz.
mysql> 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
Son olarak, istediğiniz gibi tam bir klon tablosuna sahip olacaksınız.