Discussion:
character type modification
(too old to reply)
Jodi Kanter
2003-12-16 17:32:05 UTC
Permalink
Can I alter a column from character varying(128) to text without having
to create a temp table? I am running 7.3.3.
Thanks
--
/_______________________________
//Jodi L Kanter
BioInformatics Database Administrator
University of Virginia
(434) 924-2846
***@virginia.edu <mailto:***@virginia.edu>/



/ /

/ /
Godshall Michael
2003-12-16 17:31:10 UTC
Permalink
Existing table column data types cannot be altered in any stable version of
postgres(7.4 or previous). I don't know if it is available in a beta
release.

-----Original Message-----
From: pgsql-admin-***@postgresql.org
[mailto:pgsql-admin-***@postgresql.org]On Behalf Of Jodi Kanter
Sent: Tuesday, December 16, 2003 11:32 AM
To: Postgres Admin List
Subject: [ADMIN] character type modification


Can I alter a column from character varying(128) to text without having to
create a temp table? I am running 7.3.3.
Thanks
--
_______________________________
Jodi L Kanter
BioInformatics Database Administrator
University of Virginia
(434) 924-2846
***@virginia.edu <mailto:***@virginia.edu>
<!--[if !supportLineBreakNewLine]-->
<!--[endif]-->

<!--[if !supportEmptyParas]--> <!--[endif]-->

<!--[if !supportEmptyParas]--> <!--[endif]-->

<!--[if !supportEmptyParas]--> <!--[endif]-->
mfuhr+ (Michael Fuhr)
2003-12-16 17:35:46 UTC
Permalink
Post by Jodi Kanter
Can I alter a column from character varying(128) to text without having
to create a temp table? I am running 7.3.3.
The FAQ has a question entitled "How do you remove a column from a
table, or change its data type?":

http://www.postgresql.org/docs/faqs/FAQ.html
--
Michael Fuhr
http://www.fuhr.org/~mfuhr/

---------------------------(end of broadcast)---------------------------
TIP 9: the planner will ignore your desire to choose an index scan if your
joining column's datatypes do not match
Andrei Bintintan
2003-12-16 17:45:08 UTC
Permalink
This is another discuttion about this problem.

Please read these mails.
I cannot write here all the syntax:
I'll give an example: you have a table called "person" and you have a column
called "name" varchar(10) and you want to change it into varchar(25).

alter person add column name_temp varchar(25);
update person set name_temp = name;
alter person drop column name;
alter person rename column name_temp to name;

This is it. Now depending on you database complexity if you have a complex
database and a lot of indexes or triggers, you will have to drop these items
and rebuild them.

Have fun.
Andy.


----- Original Message -----
From: "Chitta Ranjan Mishra" <***@yahoo.co.in>
To: "Andrei Bintintan" <***@ar-sd.net>
Sent: Friday, December 12, 2003 5:46 AM
Subject: [ADMIN] Help---- Urgent
Dear Sir,
Thanks for your reply. Kindly send me the syntax
for all this.
Thanking you,
Regds
C.R.Mishra
Create a new column
alter <tablename> add column <newcolname>
varchar(25);
update <tablename> set <newcolname> = <oldcolname>;
alter <tablename> drop column <oldcolname>;
alter <tablename> rename column <newcolname> to
<oldcolname>;
Take care for INDEXES if there are any.
This should do it.
Best regards.
----- Original Message -----
From: "Chitta Ranjan Mishra"
Sent: Thursday, December 11, 2003 7:19 AM
Subject: [ADMIN] Help---- Urgent
Dear Sir,
I wnat to alter the size of one of the column
of a
table. How to do this in Postgres ? Plz help me.
It's very urgent...
but it failed....
alter table tablename modify(coumnname
varchar(25));
it's very urgnet...plz reply soon..
Thanking you,
Regds
C.R.Mishra
________________________________________________________________________
Yahoo! India Mobile: Download the latest
polyphonic ringtones.
Go to http://in.mobile.yahoo.com
---------------------------(end of
broadcast)---------------------------
TIP 1: subscribe and unsubscribe commands go to
________________________________________________________________________
Yahoo! India Mobile: Download the latest polyphonic ringtones.
Go to http://in.mobile.yahoo.com
----- Original Message -----
From: Jodi Kanter
To: Postgres Admin List
Sent: Tuesday, December 16, 2003 7:32 PM
Subject: [ADMIN] character type modification


Can I alter a column from character varying(128) to text without having to create a temp table? I am running 7.3.3.
Thanks


--

_______________________________
Jodi L Kanter
BioInformatics Database Administrator
University of Virginia
(434) 924-2846
***@virginia.edu
<!--[if !supportLineBreakNewLine]-->
<!--[endif]-->

<!--[if !supportEmptyParas]--> <!--[endif]-->

<!--[if !supportEmptyParas]--> <!--[endif]-->

<!--[if !supportEmptyParas]--> <!--[endif]-->
Tom Lane
2003-12-17 08:02:18 UTC
Permalink
Post by Jodi Kanter
Can I alter a column from character varying(128) to text without having
to create a temp table? I am running 7.3.3.
Yeah, if you're brave enough: change the column's atttypid to 'text'
(25, I think, but check it) and atttypmod to -1 in pg_attribute.
This is sufficient since the two datatypes have the same representation
--- in general you can't just hack atttypid at random, but it will
work in this case.

Highly advisable to practice this maneuver in a scratch database.

BTW, if you're running 7.3.3 and not 7.3.4 (even better 7.3.5), you are
not being brave but foolish. 7.3.3's WAL-startup-failure bug will get
you sooner or later.

regards, tom lane

---------------------------(end of broadcast)---------------------------
TIP 5: Have you checked our extensive FAQ?

http://www.postgresql.org/docs/faqs/FAQ.html

Loading...