PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

So ändern Sie den Spaltendatentyp von Zeichen in numerisch in PostgreSQL 8.4

Sie können es mit USING versuchen :

Das optionale USING Klausel gibt an, wie der neue Spaltenwert aus dem alten berechnet wird; Wenn es weggelassen wird, ist die Standardkonvertierung dasselbe wie eine Zuweisungsumwandlung vom alten Datentyp in den neuen. Ein USING -Klausel muss angegeben werden, wenn es keine implizite oder Zuweisungsumwandlung vom alten in den neuen Typ gibt.

Das könnte also funktionieren (abhängig von Ihren Daten):

alter table presales alter column code type numeric(10,0) using code::numeric;
-- Or if you prefer standard casting...
alter table presales alter column code type numeric(10,0) using cast(code as numeric);

Dies wird fehlschlagen, wenn Sie irgendetwas in code haben das kann nicht in numerisch umgewandelt werden; Wenn USING fehlschlägt, müssen Sie die nicht numerischen Daten von Hand bereinigen, bevor Sie den Spaltentyp ändern.