この記事の内容は、Mysql の create as と create like の違いについてです。 (比較紹介)困っている友人は参考にしていただければ幸いです。
Navicat Premium を使用すると、テーブルやデータ構造をコピーする場合など、非常に便利であることがわかります。実際、テーブル データや構造をコピーするこの方法は、テーブルとして作成され、テーブルのように作成されます。
注意深い友達は、それらの違いは何ですか?と尋ねます。 。 。 。早速、本題に入りましょう:,
(推奨コース: MySQL チュートリアル)
たとえば、テーブル データ t1 は次のとおりです:
DROP TABLE IF EXISTS `t1`; CREATE TABLE `t1` ( `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'ID,自增', `uid` bigint(11) UNSIGNED NOT NULL DEFAULT 0 COMMENT '用户uid', `nickname` varchar(25) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '昵称', `name` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '用户名', PRIMARY KEY (`id`) USING BTREE, INDEX `unn`(`uid`, `name`, `nickname`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact; -- ---------------------------- -- Records of t1 -- ---------------------------- INSERT INTO `t1` VALUES (3, 100, 'kaven', 'test3'); INSERT INTO `t1` VALUES (2, 101, 'maha', 'test2'); INSERT INTO `t1` VALUES (4, 102, 'loose', 'test4'); INSERT INTO `t1` VALUES (5, 105, 'balala', 'test5');
注意 これにはインデックスがあります:
コピーテーブルとして作成
create table t1_copy as select * from t1 where 1=2# 或者 create table t1_copy as select * from t1 limit 0
ここで必要なのはテーブル構造なので、where 上記 1=2 または limit 0 は空のデータをクエリします。新しいテーブル t1_copy にはインデックスがないことがわかります。
t1 テーブル (ソース テーブル) のインデックス情報が欠落していますが、テーブル構造だけが同じです。 (データをコピーしたい場合は、制限 0 を削除するだけです。つまり、クエリされたデータをすべてコピーします)
コピー テーブルのように作成します
create table t1_copy2 like t1
like によって作成された新しいテーブルには、ソース テーブルの完全なテーブル構造とインデックス情報が含まれていることがわかりました。
概要:
as は、同じテーブル構造を作成し、ソース テーブル データをコピーするために使用されます。
like は、完全なテーブル構造とすべてのインデックスを作成するために使用されます。
注: この 2 つの方法では、テーブルをコピーするときにテーブルの権限設定はコピーされません。たとえば、最初にテーブル A に権限が設定されていた場合、テーブル AA をコピーした後、テーブル AA にはテーブル A と同様の権限がありません。興味のある友達は試してみてください
以上がMysql での create as と create like の違いは何ですか? (比較紹介)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。