次のMysqlのクエリでは、
CREATE TABLE `t1` LIKE `student`
学生から新しく作成されたt1は、学生と同じかどうかにかかわらず、同じスキーマと外部キーを持ちます。これは私の疑問です。
誰かが私の疑問をクリアできますか?
テーブル t1 には、学生と外部キーのような同じスキーマがありますが、空のテーブルです。参照
詳細については、
> CREATE TABLE new_tbl SELECT * FROM orig_tbl;
この場合、元のテーブルのすべてのデータが新しいテーブルにコピーされますが、主キーの制約などのスキーマ関連の情報は含まれません。
> CREATE TABLE new_tbl LIKE orig_tbl;
この場合、新しいテーブルには元のテーブルと同じスキーマがありますが、データはありません。
ここから引用:
LIKE を使用して、元のテーブルで定義された列属性とインデックスを含む、別のテーブルの定義に基づいて空のテーブルを作成します。
CREATE TABLE new_tbl LIKE orig_tbl;
コピーは、元のテーブルと同じバージョンのテーブル ストレージ形式を使用して作成されます。元のテーブルに対する SELECT 権限が必要です。
LIKE は、ビューではなく、ベース テーブルに対してのみ機能します。
CREATE TABLE ... LIKE は、元のテーブルに指定された DATA DIRECTORY または INDEX DIRECTORY テーブル オプション、または外部キー定義を保持しません。