Re[3]: [HACKERS] SERIAL data type
От | Sferacarta Software |
---|---|
Тема | Re[3]: [HACKERS] SERIAL data type |
Дата | |
Msg-id | 11635.980916@bo.nettuno.it обсуждение исходный текст |
Ответ на | Re[2]: [HACKERS] SERIAL data type (Sferacarta Software <sferac@bo.nettuno.it>) |
Список | pgsql-hackers |
SS> sabato, 12 settembre 98, you wrote: BGA>> t-ishii@sra.co.jp (Tatsuo Ishii) writes: >>> A few questions for new SERIAL data type: >>> [...] >>> o explicit insertion to the serial column sets the value specified. >>> This is good. However, next implicit insertion results in that >>> previous value from the sequence + 1 is set. >>> >>> create table t (c text, i serial); >>> insert into t values('a'); >>> insert into t values('b',100); >>> insert into tvalues('c'); >>> select * from t; >>> >>> a 1 >>> b 100 >>> c 2 >>> >>> This seems a little bit unnatural for me. may be i of the thrid row >>> should be 101? BGA>> The action above is definitely 'not right'. It is my opinion that either: BGA>> 1. Explicit insertion into a serial column be dis-allowed. BGA>> 2. If explicit insertion is allowed, then the sequence need to be set so BGA>> the next implicit insertsion result in the last explicit insertion BGA>> value + 1 being used (i.e. 101 instead of 2 in the example above). BGA>> Of these two options, I prefer #1. BGA>> Also, should we be able to specify a starting value for the sequence when the BGA>> table is created? For example "create table t (c text, i serial(1000));" to BGA>> set the starting value of the sequence to 1000. I would like to remember there's another problem with sequences. If you increment a sequence during a transaction and then the transaction rolls back, the sequence's original value don't be restored. Jose'
В списке pgsql-hackers по дате отправления: