diff --git a/doc/FAQ b/doc/FAQ index 163178fa38da8b1672cd2b4a7afb5d3a4db78af1..c188796c0eb38c6632f23b727746aa57aef47735 100644 --- a/doc/FAQ +++ b/doc/FAQ @@ -1,7 +1,7 @@ Frequently Asked Questions (FAQ) for PostgreSQL - Last updated: Tue Apr 22 14:02:41 EDT 2003 + Last updated: Mon May 26 15:25:04 EDT 2003 Current maintainer: Bruce Momjian (pgman@candle.pha.pa.us) @@ -60,7 +60,8 @@ 4.1) What is the difference between binary cursors and normal cursors? 4.2) How do I SELECT only the first few rows of a query? 4.3) How do I get a list of tables or other things I can see in psql? - 4.4) How do you remove a column from a table? + 4.4) How do you remove a column from a table, or change it's data + type? 4.5) What is the maximum size for a row, a table, and a database? 4.6) How much database disk space is required to store data from a typical text file? @@ -644,10 +645,10 @@ the -E option so it will print out the queries it uses to execute the commands you give. - 4.4) How do you remove a column from a table? + 4.4) How do you remove a column from a table, or change its data type? - This functionality was added in release 7.3 with ALTER TABLE DROP - COLUMN. In earlier versions, you can do this: + DROP COLUMN functionality was added in release 7.3 with ALTER TABLE + DROP COLUMN. In earlier versions, you can do this: BEGIN; LOCK TABLE old_table; SELECT ... -- select all columns but the one you want to remove @@ -657,6 +658,16 @@ ALTER TABLE new_table RENAME TO old_table; COMMIT; + To change the data type of a column, do this: + BEGIN; + ALTER TABLE tab ADD COLUMN new_col new_data_type; + UPDATE tab SET new_col = CAST(old_col AS new_data_type); + ALTER TABLE DROP COLUMN old_col; + COMMIT; + + You might then want to do VACUUM FULL tab to reclaim the disk space + used by the expired rows. + 4.5) What is the maximum size for a row, a table, and a database? These are the limits: diff --git a/doc/src/FAQ/FAQ.html b/doc/src/FAQ/FAQ.html index 33ba50b25973f10460cfdcf5ed86ec46f07f2a7f..c63696aa5872fa592f5de6191752c3ff9cb56566 100644 --- a/doc/src/FAQ/FAQ.html +++ b/doc/src/FAQ/FAQ.html @@ -10,7 +10,7 @@ alink="#0000ff"> <H1>Frequently Asked Questions (FAQ) for PostgreSQL</H1> - <P>Last updated: Tue Apr 22 14:02:41 EDT 2003</P> + <P>Last updated: Mon May 26 15:25:04 EDT 2003</P> <P>Current maintainer: Bruce Momjian (<A href= "mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us</A>)<BR> @@ -87,7 +87,7 @@ <A href="#4.3">4.3</A>) How do I get a list of tables or other things I can see in <I>psql</I>?<BR> <A href="#4.4">4.4</A>) How do you remove a column from a - table?<BR> + table, or change it's data type?<BR> <A href="#4.5">4.5</A>) What is the maximum size for a row, a table, and a database?<BR> <A href="#4.6">4.6</A>) How much database disk space is required @@ -822,9 +822,9 @@ execute the commands you give.</P> <H4><A name="4.4">4.4</A>) How do you remove a column from a - table?</H4> + table, or change its data type?</H4> - <P>This functionality was added in release 7.3 with + <P><SMALL>DROP COLUMN</SMALL> functionality was added in release 7.3 with <SMALL>ALTER TABLE DROP COLUMN</SMALL>. In earlier versions, you can do this:</P> <PRE> @@ -838,6 +838,17 @@ COMMIT; </PRE> + <P>To change the data type of a column, do this:</P> +<PRE> + BEGIN; + ALTER TABLE tab ADD COLUMN new_col <i>new_data_type</i>; + UPDATE tab SET new_col = CAST(old_col AS <i>new_data_type</i>); + ALTER TABLE DROP COLUMN old_col; + COMMIT; +</PRE> + <P>You might then want to do <I>VACUUM FULL tab</I> to reclaim the + disk space used by the expired rows.</P> + <H4><A name="4.5">4.5</A>) What is the maximum size for a row, a table, and a database?</H4>