CREATE OR REPLACE FUNCTION create_new_stu() RETURNS trigger AS $BODY$ declare usrid int; student students%rowtype; begin usrid := NEW.id; select * from students where sno='111' into student; student.sname := 'zxh'; if student.cno is NULL then student.scid := 1; end if; insert into students select student.*; return NEW; end; $BODY$ LANGUAGE plpgsql VOLATILE COST 100; ALTER FUNCTION create_new_stu() OWNER TO postgres;
rowtype类型的变量可以看作一个结构体,可以通过点访问符来获取或修改某个字段的值。将某个rowtype类型的变量值直接插入到某个结构相同的表中:
insert into students select student.*;