Penyelesaian masalah Mariadb menggunakan CREATE TABLE SELECT UNION
P粉115840076
P粉115840076 2023-08-02 11:25:48
0
1
491

Saya sedang mengusahakan skrip PHP yang mengandungi enam UNION SELECT dan dalam skrip arahan ini berfungsi dengan baik. Perintah ini juga berfungsi dengan baik apabila dilaksanakan daripada klien SQL. Walau bagaimanapun, apabila saya cuba meletakkan pernyataan SELECT di dalam CREATE TABLE mytable SELECT, saya mendapat mesej ralat berikut:

Nama lajur tidak betul ''

Dalam lima daripada enam serpihan UNION SELECT, terdapat nama lajur bernama '', yang digunakan sebagai ruang letak semasa mengisi data dalam bahagian skrip yang berikutnya. Tetapi dalam salah satu KESATUAN, kedudukan yang sama ialah lajur varchar(32).

Nampaknya kewujudan lajur "tanpa nama" tidak penting dalam pelaksanaan biasa arahan itu. Tetapi dalam versi CREATE TABLE, ia tidak menyukai ini.

Mengapakah SELECT dan CREATE TABLE SELECT mempunyai peraturan yang berbeza untuk nama lajur kesatuan?


P粉115840076
P粉115840076

membalas semua (1)
P粉821231319

Jadual tidak boleh mengandungi nama lajur kosong atau tiada, manakala set hasil boleh. Pernyataan CREATE TABLE SELECT memperoleh nama lajur jadual daripada set hasil pernyataan SELECT. Oleh itu, anda perlu memastikan bahawa setiap lajur set hasil mempunyai nama, sama ada diperoleh daripada lajur dalam beberapa jadual atau ditentukan melalui alias AS. Contohnya,

SELECT 'one' AS tablename, cola, colb, colc FROM table_one UNION ALL SELECT 'two', cola, colb, colc FROM table_two UNION ALL SELECT 'three', cola, colb, colc FROM table_three

terpakai pada kenyataan CREATE TABLE, manakala

SELECT 'one', cola, colb, colc FROM table_one UNION ALL SELECT 'two', cola, colb, colc FROM table_two UNION ALL SELECT 'three', cola, colb, colc FROM table_three

Tidak berkenaan kerana ia tidak memberikan nama lajur alias pada lajur pertama.

    Muat turun terkini
    Lagi>
    kesan web
    Kod sumber laman web
    Bahan laman web
    Templat hujung hadapan
    Tentang kita Penafian Sitemap
    Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!