I'd like to ensure that nobody provide the ID in an insert statement
when the id is linked to a sequence.
I tried it with a trigger, but the id value is fed before the "BEFORE
INSERT" test is performed (see below)...
Any Idea ?
CREATE FUNCTION serialtest() RETURNS trigger AS $serialtest$
-- Check that the id is provided
IF NEW.id IS NOT NULL THEN
RAISE EXCEPTION 'id will be set from a sequence; do not
$serialtest$ LANGUAGE plpgsql;
CREATE TABLE test_table
id serial primary key,
CREATE TRIGGER test BEFORE INSERT OR UPDATE ON test_table
FOR EACH ROW EXECUTE PROCEDURE serialtest();
insert into test_table(foo)values(1);
ERROR: id will be set from a sequence; do not provide it!
SQL state: P0001
pgsql-admin by date
|Next:||From: Donald Fraser||Date: 2006-12-13 12:08:59|
|Subject: Re: How to enforce the use of the sequence for serial columns ?|
|Previous:||From: Shoaib Mir||Date: 2006-12-13 11:22:41|
|Subject: Re: Backup|