Postgresql 无法将数据插入表,因为Postgres中存在触发器
我创建了一个表ebillname varchar,prev int,curr int。当输入prevreading=currreading的值时,有一个触发器会引发异常。但它也不需要其他数据Postgresql 无法将数据插入表,因为Postgres中存在触发器,postgresql,plpgsql,Postgresql,Plpgsql,我创建了一个表ebillname varchar,prev int,curr int。当输入prevreading=currreading的值时,有一个触发器会引发异常。但它也不需要其他数据 -- This is my function CREATE OR REPLACE FUNCTION BILL_CHECK() RETURNS TRIGGER AS $$ BEGIN IF (NEW.PREVREADING=NEW.CURRREADING) THEN RAISE EXCEPTION
-- This is my function
CREATE OR REPLACE FUNCTION BILL_CHECK() RETURNS TRIGGER AS $$
BEGIN
IF (NEW.PREVREADING=NEW.CURRREADING) THEN
RAISE EXCEPTION 'Data Entry Error';
END IF;
RETURN NULL;
END;
$$ LANGUAGE PLPGSQL;
--This is my trigger
CREATE TRIGGER BILL
BEFORE INSERT OR UPDATE ON EBILL
FOR EACH ROW EXECUTE PROCEDURE BILL_CHECK();
INSERT INTO EBILL VALUES('MELVY',7,7);-- Raises Exception. Working.
NSERT INTO EBILL VALUES('MELVY',7,8);-- No change in the table.insert 00
INSERT 0 0
为什么我不能插入第二组pf数据?问题是您返回NULL 这是中止数据修改的信号 你应该
RETURN NEW;