Résolution de problèmes Mariadb à l'aide de CREATE TABLE SELECT d'UNION
P粉115840076
P粉115840076 2023-08-02 11:25:48
0
1
486

Je travaille sur un script PHP qui contient six UNION SELECT, et dans le script, cette commande fonctionne très bien. Cette commande fonctionne également correctement lorsqu'elle est exécutée à partir d'un client SQL. Cependant, lorsque j'essaie de placer l'instruction SELECT dans CREATE TABLE mytable SELECT, j'obtiens le message d'erreur suivant :

Nom de colonne incorrect ''

Dans cinq des six fragments UNION SELECT, il existe un nom de colonne nommé '', qui est utilisé comme espace réservé lors du remplissage des données dans les parties suivantes du script. Mais dans l'une des UNION, la même position est une colonne varchar(32).

Il semble que l'existence d'une colonne "anonyme" n'ait pas d'importance dans l'exécution normale de la commande. Mais dans la version CREATE TABLE, cela n'aime pas ça.

Pourquoi SELECT et CREATE TABLE SELECT ont-ils des règles différentes pour les noms de colonnes d'union ?


P粉115840076
P粉115840076

répondre à tous (1)
P粉821231319

Les tableaux ne peuvent pas contenir de noms de colonnes vides ou manquants, contrairement aux ensembles de résultats. L'instruction CREATE TABLE SELECT obtient les noms de colonnes de la table à partir du jeu de résultats de l'instruction SELECT. Par conséquent, vous devez vous assurer que chaque colonne du jeu de résultats porte un nom, soit dérivé d'une colonne d'une table, soit spécifié via un alias AS. Par exemple,

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

s'applique à l'instruction CREATE TABLE, tandis que

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

Non applicable car il n'attribue pas de nom de colonne alias à la première colonne.

    Derniers téléchargements
    Plus>
    effets Web
    Code source du site Web
    Matériel du site Web
    Modèle frontal
    À propos de nous Clause de non-responsabilité Sitemap
    Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!