Saya ingin tahu bagaimana MySQL mentafsir sintaks CREATE TABLE:
Jika ia ditulis seperti ini:
CREATE TABLE tbl1 ( `v1` int, `v2` int CONSTRAINT idx PRIMARY KEY (v1) ) SELECT a, b FROM tbl2;
Adakah ia menentukan nilai mana yang masuk ke v1 dan nilai mana yang masuk ke v2 berdasarkan susunan dalam pernyataan pilih?
Adakah ia menggunakan nama yang saya nyatakan dalam kenyataan CREATE TABLE, atau adakah ia mendapat nama daripada pernyataan pilih?
Saya telah menggunakan CREATE TABLE XX SELECT val FROM YY sebelum ini, tetapi ingin lebih spesifik tentang sintaks di atas.
Berdasarkan penyelesaian semasa, anda akan mendapat jadual dengan lajur v1 v2 a dan b.
Untuk mengetahui cara melakukannya dengan betul, lihat bab "CREATE TABLE ... SELECT Statement", sila rujuk dokumentasi rasmi MySQL. .
Jadi jika anda hanya mahu v1 dan v2 mempunyai indeks pada v1, seperti ini: