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)
-
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
-
重複を削除して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