Modifier le type de champ de type varchar en entier: “ne peut pas être lancé automatiquement au type integer”

J'ai une petite table et un certain champ contient le type "character varying". Je suis en train de changer pour "Entier", mais il donne une erreur de casting n'est pas possible.

Est-il un moyen de contourner ce ou devrais-je créer une autre table et apporter les enregistrements à l'aide d'une requête.

Le champ contient uniquement des valeurs entières.

  • Ce spécifique ALTER TABLE avez-vous essayé et quel a été le message d'erreur spécifique?
  • J'ai essayé à l'aide de alter de phppgadmin. Sélectionné la colonne et essayé de saisir le nouveau type de champ. L'erreur est: SQL error: ERROR: column "MID" cannot be cast to type integer
  • La première est de sauvegarder la table. Vous pouvez ensuite créer une autre colonne (dire champ2) de type entier dans la même table. Sélectionnez la distribution à valeur entière dans le champ1 champ2 . Puis renommer la colonne.
  • mais la nouvelle colonne tombe à la fin de la table de droite? Je ne peux pas l'avoir dans la même position?
  • oui vous l'aurez dernière.
  • hmm, essayez celui-ci postgresonline.com/journal/archives/...
  • Se soucier des positions des colonnes est généralement le signe d'une terrible la conception de l'application. Vous souhaitez presque toujours à l'aide de nommer explicitement les colonnes et SELECT listes, en ne s'appuyant pas sur la colonne de positions ordinales. Cela dit, l'approche adoptée dans les réponses de préserver la position de la colonne.

InformationsquelleAutor itsols | 2012-11-01