5

CREATE TABLEMySQLが構文をどのように解釈するか知りたいです:

私が書いた場合:

CREATE TABLE tbl1 (
    `v1` int,
    `v2` int
     CONSTRAINT idx PRIMARY KEY (v1)
)
SELECT a, b FROM tbl2;
  • selectステートメントでの順序によってv1どの値がどの値に入るかを決定しますか?v2

  • ステートメントで指定した名前を使用しますCREATE TABLEか、それともselectステートメントからそれらを取得しますか?

以前に使用したCREATE TABLE XX SELECT val FROM YYことがありますが、上記の構文についてより具体的に知りたいと思います。

4

1 に答える 1

9

現在のソリューションでは、、、、、およびの列を持つテーブルを取得しv1ます。v2ab

それがどのように正しく行われるかを確認するには、MySQLの公式ドキュメントの「CREATETABLE...SELECTステートメント」の章を参照してください。

したがって、インデックスが必要な場合は、次のようにしますv1v2v1

CREATE TABLE tbl1 (PRIMARY KEY (v1))
SELECT a v1,
       b v2
FROM tbl2;
于 2012-08-15T02:34:37.703 に答える