J'ai une petite table et un certain champ contient le type " caractère variable ". J'essaie de le changer en " Entier mais le message d'erreur suivant s'affiche : "Le moulage n'est pas possible.
Existe-t-il un moyen de contourner ce problème ou dois-je simplement créer une autre table et y placer les enregistrements à l'aide d'une requête ?
Le champ ne contient que des valeurs entières.
0 votes
Quel ALTER TABLE spécifique avez-vous essayé et quel était le message d'erreur spécifique ?
0 votes
@muistooshort J'ai essayé d'utiliser alter depuis phppgadmin. J'ai sélectionné la colonne et essayé de saisir le nouveau type de champ. L'erreur est la suivante :
SQL error: ERROR: column "MID" cannot be cast to type integer
3 votes
La première est de sauvegarder la table. Ensuite, vous pouvez créer une autre colonne (disons field2) de type entier dans la même table. Sélectionnez le cast to integer value du field1 dans le field2 . Puis renommez la colonne.
0 votes
@Igor mais la nouvelle colonne se trouve à la fin du tableau, n'est-ce pas ? Ne puis-je pas l'avoir à la même position ?
0 votes
Oui, vous l'aurez en dernier.
0 votes
Hmm, essayez celui-là postgresonline.com/journal/archives/
2 votes
Le fait de se soucier de la position des colonnes est généralement le signe d'une conception déficiente de l'application. Vous voulez presque toujours utiliser des colonnes explicitement nommées et des fichiers de type
SELECT
des listes, sans s'appuyer sur les positions ordinales des colonnes. Cela dit, l'approche donnée dans les réponses préservera la position des colonnes.