MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

テーブルとそのデータ、トリガー、インデックスを複製/複製するにはどうすればよいですか?


古いテーブルと同じように、データ、トリガー、インデックスとともに新しいテーブルを作成するには、次の2つのクエリを実行する必要があります

CREATE TABLE new_table LIKE old_table;
INSERT new_table SELECT * from old_table;
mysql> Create table employee(ID INT PRIMARY KEY NOT NULL AUTO_INCREMENT, NAME VARCHAR(20));
Query OK, 0 rows affected (0.21 sec)

mysql> Describe employee;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| ID    | int(11)     | NO   | PRI | NULL    | auto_increment |
| NAME  | varchar(20) | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set (0.07 sec)

mysql> Insert into employee(name) values('Gaurav'),('Raman');
Query OK, 2 rows affected (0.07 sec)
Records: 2 Duplicates: 0 Warnings: 0

mysql> Select * from employee;
+----+--------+
| ID | NAME   |
+----+--------+
| 1  | Gaurav |
| 2  | Raman  |
+----+--------+
2 rows in set (0.00 sec)

以下のクエリは、テーブルemployeeと同様の構造を持つテーブルemployee1を作成します。 DESCRIBEクエリを実行することで確認できます。

mysql> create table employee1 like employee;
Query OK, 0 rows affected (0.19 sec)

mysql> describe employee1;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| ID    | int(11)     | NO   | PRI | NULL    | auto_increment |
| NAME  | varchar(20) | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set (0.14 sec)

これで、以下のクエリにより、employee1にemployeeと同じ値が挿入されます。これは以下のように確認できます

mysql> INSERT INTO employee1 select * from employee;
Query OK, 2 rows affected (0.09 sec)
Records: 2 Duplicates: 0 Warnings: 0

mysql> select * from employee1;
+----+--------+
| ID | NAME   |
+----+--------+
| 1  | Gaurav |
| 2  | Raman  |
+----+--------+
2 rows in set (0.00 sec)

このようにして、データ、トリガー、インデックスとともにテーブルのクローンを作成できます。


  1. MySQLでテーブルの構造を複製するにはどうすればよいですか?

    MySQLでクローンを作成するには、LIKE句を使用します。まずテーブルを作成しましょう- mysql> create table DemoTable1 -> ( -> StudentId int, -> StudentName varchar(20) -> ); Query OK, 0 rows affected (0.55 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable1 values(100,'John'); Query OK, 1 row aff

  2. インデックスを使用してMySQLテーブルを作成するにはどうすればよいですか?

    インデックスを使用してMySQLテーブルを作成するための構文は、次のとおりです- create table yourTableName ( yourColumnName1 dataType, yourColumnName2 dataType . . . N ); create index yourIndexName1 on(yourColumnName1 ); create index yourIndexName2 on(yourColumnName2 ); まずテーブルを作成しましょう- mysql> create table DemoTable    ->