Updatable Views - DEFAULT doesn't inherit from table??? - Mailing list pgsql-general

From Csaba Együd
Subject Updatable Views - DEFAULT doesn't inherit from table???
Date
Msg-id ghb9hl$2ibq$1@news.hub.org
Whole thread Raw
Responses Re: Updatable Views - DEFAULT doesn't inherit from table???
Re: Updatable Views - DEFAULT doesn't inherit from table???
List pgsql-general
Hi,
I have problems with inserting rows into an updatable view through it's
insert rule.
Running this:
insert into view_products_1
(id,firmid,name_en,name_hu,artnum1,artnum2,description_hu,description_en,pkgunitid,minpkg,customstariff,vat)
values
('23','1','dddddddd','dddddddddddd','dddddddddd','dddddddd','ddddddddd','dddddddddd','1','10','2022220','20')

the engine sends this error:
ERROR:  null value in column "qtyunitid" violates not-null constraint

********** Error **********
ERROR: null value in column "qtyunitid" violates not-null constraint
SQL state: 23502

But in the table definition I defined DEFULT=(-1) for this field. What's
going wrong? Shouldn't it inherit these settings from the table?

Many thanks,

--
Best Regards,
Csaba Együd
IN-FO Studio


Here is the table:
-------------------------------------------------------------------------------------------
CREATE TABLE whm.products
(
  id serial NOT NULL,
  firmid integer NOT NULL,
  name_en character varying(250) NOT NULL DEFAULT ''::character varying,
  name_hu character varying(250) NOT NULL DEFAULT ''::character varying,
  artnum1 character varying(250) NOT NULL,
  artnum2 character varying(250) NOT NULL DEFAULT ''::character varying,
  description_hu character varying(512) NOT NULL DEFAULT ''::character
varying,
  createtime timestamp with time zone NOT NULL DEFAULT now(),
  "createuser" name NOT NULL DEFAULT "session_user"(),
  lastmodtime timestamp with time zone NOT NULL DEFAULT now(),
  lastmoduser name NOT NULL DEFAULT "session_user"(),
  description_en character varying(512) NOT NULL DEFAULT ''::character
varying,
  qtyunitid integer NOT NULL DEFAULT (-1),
  pkgunitid integer NOT NULL DEFAULT (-1),
  minpkg integer NOT NULL DEFAULT 0,
  customstariff character varying(64) NOT NULL DEFAULT ''::character
varying,
  vat numeric NOT NULL DEFAULT 20,
  service boolean NOT NULL DEFAULT false,
  notes character varying(512) DEFAULT ''::character varying,
  CONSTRAINT pk_products_id PRIMARY KEY (id),
  CONSTRAINT fk_products_firmid FOREIGN KEY (firmid)  REFERENCES whm.firms
(id) MATCH FULL   ON UPDATE CASCADE ON DELETE CASCADE,
  CONSTRAINT fk_products_qtyunitid FOREIGN KEY (qtyunitid)  REFERENCES
whm.qtyunits (id) MATCH FULL  ON UPDATE CASCADE ON DELETE CASCADE,
  CONSTRAINT products_pkgunitid FOREIGN KEY (pkgunitid)  REFERENCES
whm.pkgunits (id) MATCH FULL  ON UPDATE CASCADE ON DELETE CASCADE
)
WITH (OIDS=FALSE);



And here is the definition of the view:
----------------------------------------------------------------------------------------------------------------
CREATE OR REPLACE VIEW whm.view_products_1 AS
 SELECT products.id, products.firmid, products.name_en, products.name_hu,
products.artnum1, products.artnum2, products.description_hu,
products.createtime, products.createuser, products.lastmodtime,
products.lastmoduser, products.description_en, products.qtyunitid,
products.pkgunitid, products.minpkg, products.customstariff, products.vat,
products.service, products.notes  FROM whm.products WHERE products.firmid =
1;

CREATE OR REPLACE RULE view_products_1_insert AS
    ON INSERT TO whm.view_products_1 DO INSTEAD  INSERT INTO whm.products
(firmid, name_en, name_hu, artnum1, artnum2, description_hu, description_en,
qtyunitid, pkgunitid, minpkg, customstariff, vat, service, notes)
  VALUES (1, new.name_en, new.name_hu, new.artnum1, new.artnum2,
new.description_hu, new.description_en, new.qtyunitid, new.pkgunitid,
new.minpkg, new.customstariff, new.vat, new.service, new.notes);



pgsql-general by date:

Previous
From: "Grzegorz Jaśkiewicz"
Date:
Subject: Re: serial
Next
From: "Grzegorz Jaśkiewicz"
Date:
Subject: Re: Updatable Views - DEFAULT doesn't inherit from table???