0

質問:

2 つ以上の既存のテーブルから mySQL でテーブルを作成することは可能ですか?

詳細:

次のようなテーブルを作成できますか。

CREATE TABLE IF NOT EXISTS USERNAME ( AGE INT NOT NULL )
CREATE TABLE IF NOT EXISTS USERAGE ( NAME VARCHAR(100) NOT NULL )
CREATE TABLE IF NOT EXISTS USER LIKE USERNAME LIKE USERAGE;

リファレンスマニュアルの表も裏も作れない:

CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
{ LIKE old_tbl_name | (LIKE old_tbl_name) }

末尾(LIKE old_tbl_name)は が 1 回以上出現することを意味 しますLIKE old_tbl_nameか?

可能であれば、同じ名前の列、または 2 つのプライマリ ID はどうなりますか?

編集: 既存のテーブルのスキーマを使用して新しいテーブルを定義しようとしていますが、新しいテーブルに既存のテーブルの内容を入力しようとはしていません。

4

1 に答える 1

4

どうですか:

CREATE TABLE IF NOT EXISTS USER SELECT * FROM USERNAME, USERAGE WHERE FALSE;

さらに、キーワードの前に新しいテーブルで必要なインデックスを指定しSELECTたり、列の名前を変更したり、通常どおり の右側でサブセットを選択したりできますSELECT

CREATE TABLE IF NOT EXISTS USER (PRIMARY KEY(UNAME)) SELECT NAME AS UNAME -- etc

同じ名前のすべての列を結合する場合は、 でNATURAL JOINs を使用するだけSELECTです。

詳細については、を参照CREATE TABLE ... SELECTしてください。

于 2012-04-23T09:57:50.683 に答える