hi there, i work with postgreSQL 7.0.2, ZPyGreSQL and zope 2.2 on suse 7.0 linux for a identifier field adr_id:serial i want to automatically insert a new number max(adr_id)+1 how can this be done in an insert into sql statement? i tried nextval('adr_adr_id_seq') but get an error message any idea? olaf -- soli-con Engineering Zanger Dipl.-Ing. (FH) Olaf Zanger Nusch Lorrainestrasse 23 3013 Bern / Switzerland Fon: +41-31-332 9782 Mob: +41-76-572 9782 mailto:info@soli-con.com mailto:olaf.zanger@soli-con.com http://www.soli-con.com
Hi Here's what I use: create table customer( custid serial primary key, name text not null check (char_length(name)>1), address text, code text, country text, telephone text, fax text, email text, private_comments text ); And the zsql method to insert a customer: insert into customer (name, address, code, country, telephone, fax, email, private_comments) values( <dtml-sqlvar name type=nb>, <dtml-sqlvar address type=nb optional>, <dtml-sqlvar code type=nb optional>, <dtml-sqlvar country type=nb optional>, <dtml-sqlvar telephone type=nb optional>, <dtml-sqlvar fax type=nb optional>, <dtml-sqlvar email type=nb optional>, <dtml-sqlvar private_comments type=nb optional> ) <dtml-var sql_delimiter> select currval('customer_custid_seq') as custid By default Postgresql inserts the next value for a serial type if it is not provided. The last bit of the SQL method returns the id of the customer just inserted. Regards Rob On Wed, Dec 06, 2000 at 08:17:08PM +0100, Olaf Zanger wrote:
hi there,
i work with postgreSQL 7.0.2, ZPyGreSQL and zope 2.2 on suse 7.0 linux
for a identifier field adr_id:serial i want to automatically insert a new number max(adr_id)+1
how can this be done in an insert into sql statement?
i tried nextval('adr_adr_id_seq') but get an error message
any idea?
olaf
-- soli-con Engineering Zanger Dipl.-Ing. (FH) Olaf Zanger Nusch Lorrainestrasse 23 3013 Bern / Switzerland Fon: +41-31-332 9782 Mob: +41-76-572 9782 mailto:info@soli-con.com mailto:olaf.zanger@soli-con.com http://www.soli-con.com Content-Description: Visitenkarte für Olaf Zanger
-- Rob Murray
hi, thanks for your help i found the mistake:
i work with postgreSQL 7.0.2, ZPyGreSQL and zope 2.2 on suse 7.0 linux
for a identifier field adr_id:serial i want to automatically insert a new number max(adr_id)+1
how can this be done in an insert into sql statement?
i tried nextval('adr_adr_id_seq') but get an error message
i create the database and load it then with the command:
copy adr from stdin using delimiters ',' with this command i also load my serial field. even that i load 14 rows the currval stays on 1 so the two lines
insert into adr (id) values (setval('adr_adr_id_seq',15)); select currval('adr_adr_id_seq');
get the value to the right level. olaf -- soli-con Engineering Zanger Dipl.-Ing. (FH) Olaf Zanger Nusch Lorrainestrasse 23 3013 Bern / Switzerland Fon: +41-31-332 9782 Mob: +41-76-572 9782 mailto:info@soli-con.com mailto:olaf.zanger@soli-con.com http://www.soli-con.com
participants (2)
-
Olaf Zanger -
rob@mur.org.uk