I found a simple solution, but i don't know how to add raises an exception here. create rule protect_profile_id0_update as on update to web.profile where old.id = 0 do instead nothing; create rule protect_profile_id0_delete as on delete to web.profile where old.id = 0 do instead nothing; 2011/12/19 Thomas Markus <t.markus@xxxxxxxxxxxxx>: > Hi, > > create a delete trigger that raises an exception > > Thomas > > > Am 19.12.2011 07:43, schrieb Капралов Александр: > >> Hi all. >> >> How to make a non-removable row in a table? >> >> In my case, I should not accidentally delete a row with id = 0. >> >> CREATE TABLE profile ( >> >> id integer NOT NULL, >> >> name character varying(265) NOT NULL >> >> ); >> >> CREATE SEQUENCE profile_id_seq >> START WITH 1 >> INCREMENT BY 1 >> NO MAXVALUE >> NO MINVALUE >> CACHE 1; >> >> ALTER TABLE profile ALTER COLUMN id SET DEFAULT >> nextval('profile_id_seq'::regclass); >> >> ALTER TABLE ONLY profile ADD CONSTRAINT profile_pkey PRIMARY KEY (id); >> >> INSERT INTO profile VALUES (0,'non-removable Profile'); >> > > > -- > Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) > To make changes to your subscription: > http://www.postgresql.org/mailpref/pgsql-general -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general