sql >> Databáze >  >> RDS >> PostgreSQL

Jak změnit datový typ sloupce ze znakového na číselný v PostgreSQL 8.4

Můžete zkusit použít USING :

Volitelné USING klauzule určuje, jak vypočítat hodnotu nového sloupce ze starého; pokud je vynechán, výchozí převod je stejný jako přetypování přiřazení ze starého datového typu na nový. A USING klauzule musí být poskytnuta, pokud neexistuje žádné implicitní nebo přiřazení přetypování ze starého na nový typ.

Takže by to mohlo fungovat (v závislosti na vašich datech):

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);

Toto selže, pokud máte v code cokoli které nelze přetypovat na numerické; pokud se USING nezdaří, budete muset před změnou typu sloupce ručně vyčistit nečíselná data.



  1. Jak implementovat vztah many-to-many v PostgreSQL?

  2. Kniha „PostgreSQL 9.0 High Performance“ je venku

  3. Jak OBJEDNAT PODLE SOUČTU() v MySQL?

  4. PostgreSQL, drag and swap