Thread: How to Convert Integer to Serial

How to Convert Integer to Serial

From
venkat
Date:
Dear All,

  I want to convert integer datatype to serial datatype.. is that possible.Please let me know.

Thanks and Regards,

Ven

Re: How to Convert Integer to Serial

From
venkat
Date:
Dear All,

  I got the solution... Here is my query

ALTER TABLE DemoTable  ALTER gid TYPE INT2;

Thanks again....


On Fri, Oct 29, 2010 at 10:18 AM, venkat <ven.tammineni@gmail.com> wrote:
Dear All,

  I want to convert integer datatype to serial datatype.. is that possible.Please let me know.

Thanks and Regards,

Ven

Re: [SQL] How to Convert Integer to Serial

From
Shoaib Mir
Date:
On Fri, Oct 29, 2010 at 3:48 PM, venkat <ven.tammineni@gmail.com> wrote:
Dear All,

  I want to convert integer datatype to serial datatype.. is that possible.Please let me know.


I don't think ALTER TABLE will let you do that... so the best way to achieve the same is:

- Create a sequence for the column (set the start of sequence according to the values you got already in the column)
- Now set this sequence as the default value for that specific column which you need to ALTER like this:

ALTER TABLE tablename ALTER COLUMN columnname 
        SET DEFAULT nextval('newsequence'::regclass);

--
Shoaib Mir
http://shoaibmir.wordpress.com/

Re: [SQL] How to Convert Integer to Serial

From
Shoaib Mir
Date:
On Fri, Oct 29, 2010 at 3:58 PM, venkat <ven.tammineni@gmail.com> wrote:
Dear All,

  I got the solution... Here is my query

ALTER TABLE DemoTable  ALTER gid TYPE INT2;



Are you sure that you have converted here to a SERIAL type?
 
--
Shoaib Mir
http://shoaibmir.wordpress.com/

Re: [SQL] How to Convert Integer to Serial

From
venkat
Date:
ohhh,, sorry... It was wrong post..sorry again...

On Fri, Oct 29, 2010 at 10:30 AM, Shoaib Mir <shoaibmir@gmail.com> wrote:
On Fri, Oct 29, 2010 at 3:48 PM, venkat <ven.tammineni@gmail.com> wrote:
Dear All,

  I want to convert integer datatype to serial datatype.. is that possible.Please let me know.


I don't think ALTER TABLE will let you do that... so the best way to achieve the same is:

- Create a sequence for the column (set the start of sequence according to the values you got already in the column)
- Now set this sequence as the default value for that specific column which you need to ALTER like this:

ALTER TABLE tablename ALTER COLUMN columnname 
        SET DEFAULT nextval('newsequence'::regclass);

--
Shoaib Mir
http://shoaibmir.wordpress.com/

Re: How to Convert Integer to Serial

From
John R Pierce
Date:
On 10/28/10 9:48 PM, venkat wrote:
> Dear All,
>
>   I want to convert integer datatype to serial datatype.. is that
> possible.Please let me know.
>

SERIAL is not actually a data type, its simply an integer with an
associated sequence.    what Shoab Mir gave will add this sequence to
the existing integer



Re: [SQL] How to Convert Integer to Serial

From
Shoaib Mir
Date:
On Fri, Oct 29, 2010 at 4:05 PM, venkat <ven.tammineni@gmail.com> wrote:
ALTER TABLE Demotable ALTER COLUMN gid 
        SET DEFAULT nextval('serial'::regclass);


It is saying that ..serial does not exist...is that true ?



Please avoid sending emails to the personal email addresses but use the community mailing lists for that.

For the error you mentioned please follow the steps I mentioned in my last email as you are doing it the wrong way. 

Create a sequence first and then you can assign that sequence to this column. You can not assign SERIAL like this, it has to be a sequence name in there.  

Re: [SQL] How to Convert Integer to Serial

From
venkat
Date:
Yes Done... Thanks alot...

On Fri, Oct 29, 2010 at 10:40 AM, Shoaib Mir <shoaibmir@gmail.com> wrote:
On Fri, Oct 29, 2010 at 4:05 PM, venkat <ven.tammineni@gmail.com> wrote:
ALTER TABLE Demotable ALTER COLUMN gid 
        SET DEFAULT nextval('serial'::regclass);


It is saying that ..serial does not exist...is that true ?



Please avoid sending emails to the personal email addresses but use the community mailing lists for that.

For the error you mentioned please follow the steps I mentioned in my last email as you are doing it the wrong way. 

Create a sequence first and then you can assign that sequence to this column. You can not assign SERIAL like this, it has to be a sequence name in there.