this a test case :

CREATE TABLE tab
(
  _id bigserial NOT NULL,
  _name text,
  CONSTRAINT tab_pkey PRIMARY KEY (_id)
);
CREATE TABLE tab_s1
(
CONSTRAINT tab_s1_check CHECK (1 = 1)
)
INHERITS (tab);
CREATE OR REPLACE VIEW v_tab AS 
 SELECT tab._id,
    tab._name
   FROM tab;
CREATE OR REPLACE FUNCTION tab_insert()
  
RETURNS trigger AS
 $BODY$
BEGIN
    INSERT INTO tab_s1 VALUES ((NEW).*);
RETURN NEW;
END $BODY$
  
LANGUAGE plpgsql;
CREATE TRIGGER tab_trigger
    INSTEAD OF INSERT ON v_tab
    FOR EACH ROW EXECUTE PROCEDURE tab_insert();

-- the query fail because _id is null
insert into v_tab(_name) values ('uuuu');

Reply via email to