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

MySQLテーブル、インデックス、およびデータのクローンを作成するにはどうすればよいですか?


MySQLテーブル、インデックス、およびデータのクローンを作成するには、「LIKE」を使用できます。私はデータベース「ビジネス」を持っており、その中で多くのテーブルが作成されています。ここですべてのテーブルを確認できます。

mysql> USE business;
Database changed

すべてのテーブルを表示しましょう-

mysql> SHOW tables;
+------------------------+
| Tables_in_business     |
+------------------------+
| addcolumntable         |
| autoincrement          |
| autoincrementtable     |
| bookindexes            |
| chardemo               |
| columnvaluenulldemo    |
| dateadddemo            |
| deletedemo             |
| deleterecord           |
| demo                   |
| demo1                  |
| demoascii              |
| demoauto               |
| demobcrypt             |
| demoemptyandnull       |
| demoint                |
| demoonreplace          |
| demoschema             |
| distinctdemo           |
| duplicatebookindexes   |
| duplicatefound         |
| employeetable          |
| existsrowdemo          |
| findandreplacedemo     |
| foreigntable           |
| foreigntabledemo       |
| groupdemo              |
| groupdemo1             |
| incasesensdemo         |
| int1demo               | 
| intdemo                |
| latandlangdemo         |
| limitoffsetdemo        |
| milliseconddemo        |
| modifycolumnnamedemo   |
| modifydatatype         |
| moneydemo              |
| moviecollection        |
| mytable                |
| nonasciidemo           |
| nthrecorddemo          |
| nulldemo               |
| nullwithselect         |
| pasthistory            |
| presenthistory         |
| primarytable           |
| primarytable1          |
| primarytabledemo       |
| sequencedemo           |
| smallintdemo           |
| spacecolumn            |
| student                |
| tblstudent             |
| tbluni                 |
| textdemo               |
| texturl                |
| trailingandleadingdemo |
| unsigneddemo           |
| varchardemo            |
| varchardemo1           |
| varchardemo2           |
| varcharurl             |
| whereconditon          |
+------------------------+
63 rows in set (0.25 sec)

現在、上記のデータベースのテーブルSTUDENTを使用しています。クエリは次のとおりです-

mysql> DESC student;

以下は出力です

+-------+--------------+------+-----+---------+-------+
| Field | Type         | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| id    | int(11)      | YES  | MUL | NULL    |       |
| Name  | varchar(100) | YES  | MUL | NULL    |       |
+-------+--------------+------+-----+---------+-------+
2 rows in set (0.20 sec)

学生テーブルの記録を確認しましょう:

SELECT * from student

出力は次のとおりです:

+------+------+
| id   | Name |
+------+------+
| 1    | John |
| 2    | Bob  |
+------+------+
2 rows in set (0.00 sec)

これがクエリです。 LIKEを使用して、インデックスとデータのクローンを作成できます。クエリは次のとおりです-

mysql> CREATE table cloneStudent like student;
Query OK, 0 rows affected (1.57 sec)

mysql> insert cloneStudent SELECT *from student;
Query OK, 2 rows affected (0.60 sec)
Records: 2 Duplicates: 0 Warnings: 0

したがって、データだけでなくクローンも正常に作成できました。これで、DESCコマンドを使用してインデックスとデータのクローンを作成したことを証明できます。これは次のとおりです-

mysql> DESC cloneStudent;

以下は出力です

+-------+--------------+------+-----+---------+-------+
| Field | Type         | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| id    | int(11)      | YES  | MUL | NULL    |       |
| Name  | varchar(100) | YES  | MUL | NULL    |       |
+-------+--------------+------+-----+---------+-------+
2 rows in set (0.00 sec)

テーブルが複製されているかどうかを確認しましょう。

mysql> SELECT * from cloneStudent;

出力は次のとおりです。

+------+------+
| id   | Name |
+------+------+
| 1    | John |
| 2    | Bob  |
+------+------+
2 rows in set (0.00 sec)

  1. MySQLにテーブルが存在するかどうかを検出するにはどうすればよいですか?

    テーブルの存在を検出するには、INFORMATION_SCHEMA.TABLESの概念を使用します。構文は次のとおりです- select table_name from information_schema.tables where table_schema=database() and table_name=yourTableName; 上記の構文を理解するために、テーブルを作成しましょう- mysql> create table DemoTable2032    -> (    -> ClientId int,   &n

  2. 重複を削除してMySQLのテーブルに1行を残す方法は?

    重複を削除してテーブルに1行を残すには、一時テーブルの概念を使用する必要があります。手順は次のとおりです- create table anytemporaryTableName as select distinct yourColumnName1, yourColumnName2 from yourTableName; truncate table yourTableName; insert into yourTableName(yourColumnName1, yourColumnName2) select yourColumnName1, yourColumnName2 from your