varchat ->text

Started by Aristide Aragonabout 25 years ago2 messagesgeneral
Jump to latest
#1Aristide Aragon
aristide@lionking.org

Hello
I created a few tables in a DB and created some varchar rows in them.
I didn't notice then that varchar(n) was an array of max[n] size, actually I thought it was the opposite (a minium of n chars would be allocated, and more if needed). I needed that, and only now I noticed that I could only do what I need with the text data type.
I need, then, to convert my tables from varchar to text, but I don't find a way to do it. ALTER TABLE table ALTER column seems to only be able to modify the default value, not the data type. I also don't see an ALTER TABLE DROP COLUMN, so that I could drop the varchar column and then add a text one.
Is there a way to do what I need without having to drop all the tables?

Please reply to aristide@mexred.net.mx and aristide@lionking.org, for my mail server is down, but the other email address may dissapear soon

Thanks in advance

Aristide

#2Richard Huxton
dev@archonet.com
In reply to: Aristide Aragon (#1)
Re: varchat ->text

Aristide Aragon wrote:

[snip]

I need, then, to convert my tables from varchar to text, but I don't find a way to do it. ALTER TABLE table ALTER column seems to only be able to modify the default value, not the data type. I also don't see an ALTER TABLE DROP COLUMN, so that I could drop the varchar column and then add a text one.
Is there a way to do what I need without having to drop all the tables?

Quickest way is to use pg_dump with the table definitions (-s iirc) then
use your favourite text editor to do a bit of search & replace then re-import.

- Richard Huxton