Обсуждение: alter table table add column

Поиск
Список
Период
Сортировка

alter table table add column

От
Ronald Rojas
Дата:
Hi,

Anybody knows how to add column with reference to BEFORE or AFTER any given column? Let say here's my table structure:

  Column  |       Type        | Modifiers
----------+-------------------+-----------
surname  | character varying |
lastname | character varying |
address   | character varying |

And, I want to add the field name age with type integer after lastname OR before the address field. How to I do that?

I would really appreciate your response.

Thanks in advance.


==================================================================================================
Ronald Rojas
Systems Administrator
Linux Registered  User #427229
==================================================================================================

Arnold's Laws of Documentation:(1) If it should exist, it doesn't.(2) If it does exist, it's out of date.(3) Only documentation for useless programs transcends the    first two laws.


Re: alter table table add column

От
Michael Glaesemann
Дата:
[Please don't post the same question to many lists. Choose one. If
you're unsure if it's the correct list for your question, ask if
there's a more appropriate one. This question is find for -novice or -
general. Thanks.]

On Jul 30, 2007, at 23:19 , Ronald Rojas wrote:

> And, I want to add the field name age with type integer after
> lastname OR before the address field. How to I do that?

Can't without dumping the database, altering the schema in the dump,
and reloading. But why does it matter? Just call the columns in the
order you want.

Michael Glaesemann
grzm seespotcode net



Re: alter table table add column

От
Oliver Elphick
Дата:
On Tue, 2007-07-31 at 12:19 +0800, Ronald Rojas wrote:
> Hi,
>
> Anybody knows how to add column with reference to BEFORE or AFTER any
> given column? Let say here's my table structure:
>
>   Column  |       Type        | Modifiers
> ----------+-------------------+-----------
> surname  | character varying |
> lastname | character varying |
> address   | character varying |
>
> And, I want to add the field name age with type integer after lastname
> OR before the address field. How to I do that?
>
> I would really appreciate your response.

It isn't possible.  Nor is it really necessary, since you can ask for
columns in any order in a SELECT.

If you really want to do it, you need to dump the table to a new table
with the columns in the desired order; delete the old table and rename
the new one.

Alternatively, add the new column (which will come at the end), add a
new address column and set its contents to be the same as the current
address column, finally drop the old address column.  (This will waste
space in the table.)

--
Oliver Elphick                                          olly@lfix.co.uk
Isle of Wight                              http://www.lfix.co.uk/oliver
GPG: 1024D/A54310EA  92C8 39E7 280E 3631 3F0E  1EC0 5664 7A2F A543 10EA
                 ========================================
   Do you want to know God?   http://www.lfix.co.uk/knowing_god.html


--
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.