我如何创建trigger function
之前adding/updating
,function
应该检查具有相同属性的记录id
(即与具有相同属性的id
现有记录进行比较)如果找到具有 id 的记录,则将该条目设置为,然后添加包含在该记录中找到的属性的相应值的条目(为新记录设置的属性除外),当为空时,新时间等于当前时刻的那个时间。因此,一个新的记录就像祖先一样。如果找到具有该 id 的记录,则将其添加到数据库中,并建立为当前时间。objects
temporary_object
time_dead
time_dead
time_create
time_create
time_dead's
time_create
例如这里是一个简单的解释(仅用于解释目的)
id time_create time-dead student amount
1 06.12 07.12 henry 500
1 07.12 henry 1000
因此,如果一个名为 henry 且 ID 为 1 的学生在 06.12 进入一个房间,并在下次他再次进入另一个房间时于 07.12 离开时,time_dead 将等于 time_create(因此旧条目的 time_dead 和新条目的 time_create - 将相等)这些是我下面的表格是 sql 格式
CREATE TABLE temporary_object
(
id integer NOT NULL,
time_create timestamp without time zone NOT NULL,
time_dead timestamp without time zone,
CONSTRAINT temporary_object_pkey PRIMARY KEY (id, time_create)
)
CREATE TABLE persons
(
fname text,
fsurname text,
)
INHERITS (temporary_object)
CREATE TABLE rooms
(
roomnum integer,
course integer,
passport text,
students_number text
)
INHERITS (temporary_object)
这就是我想要做的,但恐怕我不知道如何完成它,但我 100% 不对可能会有所帮助
CREATE TRIGGER trigger2
BEFORE INSERT OR UPDATE
ON persons
FOR EACH ROW
EXECUTE PROCEDURE func1();
这就是功能
CREATE OR REPLACE FUNCTION func1() RETURNS TRIGGER AS $persons$
DECLARE
time_create integer;
time_dead timestamp;
id timestamp;
BEGIN
IF (TG_OP = 'INSERT') THEN
time_create=