Re: Changing a table column datatype - Mailing list pgsql-novice

From psql novice
Subject Re: Changing a table column datatype
Date
Msg-id 20030513051219.3544.qmail@operamail.com
Whole thread Raw
In response to Changing a table column datatype  (<marshall@perilith.com>)
List pgsql-novice
Hi Marshall,

i assumed you wanted a new record as you used the "INSERT" command and not the "UPDATE" command.

try this:

update mytable set mycol_new = mycol;



heres the output from my terminal

j=> select * from mytable;
 fqdn | mycol | mycol_new
------+-------+-----------
 1    | 1     |
 2    | 2     |
(2 rows)

j=> update mytable set mycol_new = mycol;
UPDATE 2
j=> select * from mytable;
 fqdn | mycol | mycol_new
------+-------+-----------
 1    | 1     | 1
 2    | 2     | 2
(2 rows)


----- Original Message -----
From: <marshall@perilith.com>
Date: Mon, 12 May 2003 21:48:24 -0400 (EDT)
To: psql novice <psql_novice@operamail.com>
Subject: Re: [NOVICE] Changing a table column datatype

> Hmmm...  Maybe I haven't explained what I'm trying to do clearly.
>
> I don't wish to insert new fqdn values into this table, only copy
> the contents of one column (`mycol') into another column (`mycol_new').
> Am I missing something here?
>
> On Tue, 13 May 2003, psql novice wrote:
>
> > Hi Marshall,
> >
> > based on the error msg your getting back from postgres, your column
> > fqdn is set to 'not null'. therefore you must enter something into
> > that field when trying to insert a new record.
> >
> > going off your example, you could do it like this:
> >
> > insert into mytable (fqdn, mycol_new) select fqdn, mycol from mytable;
> >
> >
> > ----- Original Message -----
> > From: <marshall@perilith.com>
> > Date: Mon, 12 May 2003 20:18:57 -0400 (EDT)
> > To: <pgsql-novice@postgresql.org>
> > Subject: [NOVICE] Changing a table column datatype
> >
> > > Hello,
> > >
> > > This has been asked before, but the responses weren't clear enough
> > > for me to understand.
> > >
> > > I have a table `mytable' with an attribute `mycol' of datatype char(4) and
> > > I'd like to change it to varchar(20).  Mycol is populated by two values -
> > > NULLs and four element chars.  What I've tried thusfar:
> > >
> > >  db=> ALTER TABLE mytable ADD COLUMN mycol_new VARCHAR(20);
> > >  ALTER TABLE
> > >  db=> INSERT INTO mytable (mycol_new) SELECT mycol FROM mytable;
> > >  ERROR:  ExecInsert: Fail to add null value in not null attribute fqdn
> > >
> > > The `fqdn' attribute is another column in mytable.
> > >
> > > So is it the case that INSERT doesn't like inserting NULL values?  Is
> > > there another way to do this?
> > >
> > > I'm using PostgreSQL 7.3.2.
> > >
> > > TIA!
> > >
> > > -mt
> > >
> > >
> > > ---------------------------(end of broadcast)---------------------------
> > > TIP 2: you can get off all lists at once with the unregister command
> > >     (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)
> >
> >
> > --
> > ____________________________________________
> > http://www.operamail.com
> > Get OperaMail Premium today - USD 29.99/year
> >
> >
> > Powered by Outblaze
> >
> >
> > ---------------------------(end of broadcast)---------------------------
> > TIP 2: you can get off all lists at once with the unregister command
> >     (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)
> >
>


--
____________________________________________
http://www.operamail.com
Get OperaMail Premium today - USD 29.99/year


Powered by Outblaze


pgsql-novice by date:

Previous
From: Tom Lane
Date:
Subject: Re: Changing a table column datatype
Next
From: "Max Bernaert"
Date:
Subject: Backup or installation problems of het PostgreSql database.