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
587
<p>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 : </p> <pre class="brush:php;toolbar:false;">Nom de colonne incorrect ''</pre> <p>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). <br /><br />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. <br /><br />Pourquoi SELECT et CREATE TABLE SELECT ont-ils des règles différentes pour les noms de colonnes d'union ? </p><p><br /></p>
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