【发布时间】:2018-07-29 19:38:04
【问题描述】:
我已将 varchar 数据类型长度的事务表列从 50 更改为 100。一旦我更改了列的长度.. 来自父表的触发器开始失败.. 一旦我删除并创建触发器,从主表函数中删除所有内容工作正常..不确定是什么问题..有什么理由吗?
Detail: Returned type character varying(50) does not match expected type character varying(100) in column 15.
CREATE FUNCTION customer_delete_master()
RETURNS trigger
LANGUAGE 'plpgsql'
COST 100
VOLATILE NOT LEAKPROOF
AS $BODY$
DECLARE
r customer%rowtype;
BEGIN
DELETE FROM ONLY customer where customer_id = new.customer_id returning * into r;
RETURN r;
end;
$BODY$;
更新 1:
CREATE TABLE customer
(
customer_id character varying(10),
firstname character varying(100),
lastname character varying(50),
CONSTRAINT customer_pkey PRIMARY KEY (customer_id)
);
CREATE TRIGGER after_insert_customer_trigger
AFTER INSERT
ON customer
FOR EACH ROW
EXECUTE PROCEDURE customer_delete_master();
【问题讨论】:
-
如果您也发布了表格的 DDL,这将有助于理解这一点。包括
CREATE TRIGGER声明。 -
@stickybit 我已经更新了详情
标签: sql postgresql database-trigger