SERIAL's in INSERT rules
От | Enrico Scholz |
---|---|
Тема | SERIAL's in INSERT rules |
Дата | |
Msg-id | 199909061217.OAA04249@ensc-pc.cvg-i.de обсуждение исходный текст |
Список | pgsql-bugs |
============================================================================ POSTGRESQL BUG REPORT TEMPLATE ============================================================================ Your name : Enrico Scholz Your email address : enrico.scholz@informatik.tu-chemnitz.de System Configuration --------------------- Architecture (example: Intel Pentium) : i686 Operating System (example: Linux 2.0.26 ELF) : Linux 2.2.12 ELF PostgreSQL version (example: PostgreSQL-6.5.1): PostgreSQL-6.5.1 Compiler used (example: gcc 2.8.0) : egcs-2.91.66 Please enter a FULL description of your problem: ------------------------------------------------ The following statements ---------------------------------- create table foo ( id serial, data text ); create table foo1 ( id int ); create rule rule_ins as on insert to foo do insert into foo1 (id) values(NEW.id); insert into foo(data) values('test'); select * from foo,foo1; --------------------------------- are producing the unexpected result id|data|id --+----+-- 2|test| 1 (both id's differ). The thing I wanted to do is to insert an empty dataset into foo1 for each new "id" in foo, so the result should be "1|test|1". I guess the default-value "nextval('foo_id_seq')" implicated by the "serial" datatype will be used as a literal and not be evaluated. So both NEW.id and the plain insert into foo will call nextval(...). Enrico
В списке pgsql-bugs по дате отправления: