0

次のMysqlのクエリでは、

CREATE TABLE `t1` LIKE `student`

学生から新しく作成されたt1は、学生と同じかどうかにかかわらず、同じスキーマと外部キーを持ちます。これは私の疑問です。

誰かが私の疑問をクリアできますか?

4

2 に答える 2

0

テーブル t1 には、学生と外部キーのような同じスキーマがありますが、空のテーブルです。参照

詳細については、

  • CREATE TABLE ステートメントの最後にSELECTステートメントを追加することで、あるテーブルから別のテーブルを作成できます。

> CREATE TABLE new_tbl SELECT * FROM orig_tbl;

この場合、元のテーブルのすべてのデータが新しいテーブルにコピーされますが、主キーの制約などのスキーマ関連の情報は含まれません。


  • LIKEを使用して、元のテーブルで定義された列属性とインデックスを含む、別のテーブルの定義に基づいて空のテーブルを作成します。

> CREATE TABLE new_tbl LIKE orig_tbl;

この場合、新しいテーブルには元のテーブルと同じスキーマがありますが、データはありません。

于 2012-09-28T13:07:39.137 に答える
0

ここから引用:

LIKE を使用して、元のテーブルで定義された列属性とインデックスを含む、別のテーブルの定義に基づいて空のテーブルを作成します。

CREATE TABLE new_tbl LIKE orig_tbl;

コピーは、元のテーブルと同じバージョンのテーブル ストレージ形式を使用して作成されます。元のテーブルに対する SELECT 権限が必要です。

LIKE は、ビューではなく、ベース テーブルに対してのみ機能します。

CREATE TABLE ... LIKE は、元のテーブルに指定された DATA DIRECTORY または INDEX DIRECTORY テーブル オプション、または外部キー定義を保持しません。

于 2012-09-28T13:08:13.450 に答える