Re: CREATE TABLE LIKE and SERIAL
От | Thom Brown |
---|---|
Тема | Re: CREATE TABLE LIKE and SERIAL |
Дата | |
Msg-id | bddc86150910301437j7e008436v2b2b001249200aae@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: CREATE TABLE LIKE and SERIAL (Tom Lane <tgl@sss.pgh.pa.us>) |
Ответы |
Re: CREATE TABLE LIKE and SERIAL
|
Список | pgsql-general |
2009/10/30 Tom Lane <tgl@sss.pgh.pa.us>: > Thom Brown <thombrown@gmail.com> writes: >> I can see why you wouldn't expect it to end up sharing the same >> sequence. If you were to manually create a sequence and wanted to use >> it on a column, you probably wouldn't bother using the SERIAL >> datatype, but use integer instead. So really since we know the first >> table has a datatype of SERIAL on one of its columns, we might instead >> wish to have it create a new implicit sequence instead of merely >> converting it to an INTEGER datatype and adding a default constraint >> to the same sequence as the original table. > > Thinking of SERIAL as a type is your first mistake ;-). It is not a > type. It is a shorthand for making a sequence and sticking a suitable > default on a plain integer column. So what LIKE sees is an integer > column with a default, and it copies that. > Well I realise SERIAL is a convenience rather than a datatype in its own right, but I'm surprised that LIKE can't differentiate between a column created with integer and one created with serial. The table continues to report a serial datatype after its creation. Is it's reference too low-level? Could it be altered to support recognition of serial usage? Thom
В списке pgsql-general по дате отправления: