Ändra datatyp (postgres)

Databaser & SQL

2 svar · 199 visningar · startad av bohlin

Medlem sedan mars 2000263 inlägg
Trådstart#1

Har en kolumn som ja vill byta datatyp på. Från en INT4 till en FLOAT4. Jag har kollat lite i manualen men hittar inte något intressant. En lösning kan ju vara:
1. Skapa ny kolumn med rätt datatyp.
2. update tabell set nykolumn = oldkolumn
3. drop oldkolumn
4. rename new kolumn

Detta är funkar nog, men det finns säker något bättre sätt, eller?

Databasen är postgres.

Medlem sedan okt. 200153 inlägg
#2

vet inte om det hjälper,
men i oracle är det:
alter table table_namn modify (kolumn int(10));

Medlem sedan dec. 200012 464 inlägg
#3

Enligt den dokumentation som jag tittade på så går det inte att ta bort en kolumn utan att ta bort tabellen och sedan återskapa den. Enligt den så fanns det heller inget stöd för att byta datatyp på en kolumn.
http://www.postgresql.org/idocs/index.php?sql-altertable.html

263 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
129 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)