main
parent
b000bc7822
commit
d1a17001a3
@ -0,0 +1,241 @@
|
|||||||
|
/*
|
||||||
|
Navicat Premium Dump SQL
|
||||||
|
|
||||||
|
Source Server : 192.168.248.128_5432
|
||||||
|
Source Server Type : PostgreSQL
|
||||||
|
Source Server Version : 90204 (90204)
|
||||||
|
Source Host : 192.168.248.128:5432
|
||||||
|
Source Catalog : postgres
|
||||||
|
Source Schema : gaussdb
|
||||||
|
|
||||||
|
Target Server Type : PostgreSQL
|
||||||
|
Target Server Version : 90204 (90204)
|
||||||
|
File Encoding : 65001
|
||||||
|
|
||||||
|
Date: 22/12/2024 16:43:38
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Table structure for tb_admin
|
||||||
|
-- ----------------------------
|
||||||
|
DROP TABLE IF EXISTS "gaussdb"."tb_admin";
|
||||||
|
CREATE TABLE "gaussdb"."tb_admin" (
|
||||||
|
"id" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
|
||||||
|
"username" varchar(20) COLLATE "pg_catalog"."default",
|
||||||
|
"password" varchar(20) COLLATE "pg_catalog"."default",
|
||||||
|
"name" varchar(12) COLLATE "pg_catalog"."default",
|
||||||
|
"tele" varchar(11) COLLATE "pg_catalog"."default"
|
||||||
|
)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Records of tb_admin
|
||||||
|
-- ----------------------------
|
||||||
|
INSERT INTO "gaussdb"."tb_admin" VALUES ('1234567890', '1', '1', 'admin', '13245679845');
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Table structure for tb_employee
|
||||||
|
-- ----------------------------
|
||||||
|
DROP TABLE IF EXISTS "gaussdb"."tb_employee";
|
||||||
|
CREATE TABLE "gaussdb"."tb_employee" (
|
||||||
|
"id" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
|
||||||
|
"username" varchar(20) COLLATE "pg_catalog"."default",
|
||||||
|
"password" varchar(20) COLLATE "pg_catalog"."default",
|
||||||
|
"name" varchar(18) COLLATE "pg_catalog"."default",
|
||||||
|
"gender" varchar(10) COLLATE "pg_catalog"."default",
|
||||||
|
"numb" varchar(32) COLLATE "pg_catalog"."default",
|
||||||
|
"tele" varchar(11) COLLATE "pg_catalog"."default",
|
||||||
|
"idnum" varchar(18) COLLATE "pg_catalog"."default",
|
||||||
|
"age" int4,
|
||||||
|
"empposition" varchar(255) COLLATE "pg_catalog"."default",
|
||||||
|
"xuel" varchar(255) COLLATE "pg_catalog"."default",
|
||||||
|
"deptid" varchar(255) COLLATE "pg_catalog"."default"
|
||||||
|
)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Records of tb_employee
|
||||||
|
-- ----------------------------
|
||||||
|
INSERT INTO "gaussdb"."tb_employee" VALUES ('2024122111320410000001', 'admin1', '123456', '王天恩', '男', '1', '15967215736', '252627381538183547', 20, '经理', '本科', '行政');
|
||||||
|
INSERT INTO "gaussdb"."tb_employee" VALUES ('2024122111325710000002', 'admin2', '123456', '吴殷琦', '男', '2', '13370942590', '362529200305083514', 21, '经理', '本科', '人事');
|
||||||
|
INSERT INTO "gaussdb"."tb_employee" VALUES ('2024122121210310000001', 'admin3', '123456', '张三', '男', '3', '15965485731', '365784695635842684', 19, '专员', '本科', '销售');
|
||||||
|
INSERT INTO "gaussdb"."tb_employee" VALUES ('2024122121222510000002', 'admin4', '123456', '李四', '女', '4', '14695725483', '378426544258935425', 24, 'HR专员', '硕士', '人事');
|
||||||
|
INSERT INTO "gaussdb"."tb_employee" VALUES ('2024122121234010000003', 'admin5', '123456', '王五', '男', '5', '14726845351', '384521555247852541', 31, '专员', '本科', '销售');
|
||||||
|
INSERT INTO "gaussdb"."tb_employee" VALUES ('2024122121244410000004', 'admin6', '123456', '赵六', '女', '6', '14364525417', '378425841635241572', 27, '经理', '博士', '技术');
|
||||||
|
INSERT INTO "gaussdb"."tb_employee" VALUES ('2024122121265410000005', 'admin7', '123456', '吴七', '男', '7', '13784526842', '374152622415357184', 23, '专员', '大专', '销售');
|
||||||
|
INSERT INTO "gaussdb"."tb_employee" VALUES ('2024122121302010000006', 'admin8', '123456', '周八', '男', '8', '16752348175', '348525655124836781', 28, '专员', '本科', '人事');
|
||||||
|
INSERT INTO "gaussdb"."tb_employee" VALUES ('2024122121312410000007', 'admin9', '123456', '孙九', '女', '9', '15726482148', '367848255357415726', 24, '专员', '本科', '行政');
|
||||||
|
INSERT INTO "gaussdb"."tb_employee" VALUES ('2024122121323610000008', 'admin10', '123456', '刘十', '男', '10', '16754285147', '374815268426845214', 32, '经理', '硕士', '财政');
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Table structure for tb_jiaofei
|
||||||
|
-- ----------------------------
|
||||||
|
DROP TABLE IF EXISTS "gaussdb"."tb_jiaofei";
|
||||||
|
CREATE TABLE "gaussdb"."tb_jiaofei" (
|
||||||
|
"id" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
|
||||||
|
"zhangh" varchar(255) COLLATE "pg_catalog"."default",
|
||||||
|
"niany" varchar(255) COLLATE "pg_catalog"."default",
|
||||||
|
"yingfje" float8,
|
||||||
|
"shifje" float8,
|
||||||
|
"createtime" timestamp(6),
|
||||||
|
"yuang" varchar(255) COLLATE "pg_catalog"."default"
|
||||||
|
)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Records of tb_jiaofei
|
||||||
|
-- ----------------------------
|
||||||
|
INSERT INTO "gaussdb"."tb_jiaofei" VALUES ('2024122121402010000029', '2024122121332710000009', '2024-01', 67.4, 67.4, '2024-12-21 21:40:20.055', '2024122111320410000001');
|
||||||
|
INSERT INTO "gaussdb"."tb_jiaofei" VALUES ('2024122121405210000030', '2024122121335410000010', '2024-01', 57.6, 57.6, '2024-12-21 21:40:52.709', '2024122111325710000002');
|
||||||
|
INSERT INTO "gaussdb"."tb_jiaofei" VALUES ('2024122121411310000031', '2024122121342710000011', '2024-01', 84.2, 84.2, '2024-12-21 21:41:13.266', '2024122111320410000001');
|
||||||
|
INSERT INTO "gaussdb"."tb_jiaofei" VALUES ('2024122121412910000032', '2024122121345210000012', '2024-01', 67.3, 67.3, '2024-12-21 21:41:29.664', '2024122111320410000001');
|
||||||
|
INSERT INTO "gaussdb"."tb_jiaofei" VALUES ('2024122121414510000033', '2024122121352210000013', '2024-01', 64.3, 64.3, '2024-12-21 21:41:45.457', '2024122111325710000002');
|
||||||
|
INSERT INTO "gaussdb"."tb_jiaofei" VALUES ('2024122121420310000034', '2024122121354710000014', '2024-01', 94.3, 94.2, '2024-12-21 21:42:03.933', '2024122111320410000001');
|
||||||
|
INSERT INTO "gaussdb"."tb_jiaofei" VALUES ('2024122121421810000035', '2024122121362410000015', '2024-01', 64.2, 64.2, '2024-12-21 21:42:18.704', '2024122121210310000001');
|
||||||
|
INSERT INTO "gaussdb"."tb_jiaofei" VALUES ('2024122121423210000036', '2024122121364810000016', '2024-01', 54.1, 54.1, '2024-12-21 21:42:32.378', '2024122121210310000001');
|
||||||
|
INSERT INTO "gaussdb"."tb_jiaofei" VALUES ('2024122121424710000037', '2024122121371810000017', '2024-01', 67.4, 67.4, '2024-12-21 21:42:47.282', '2024122111325710000002');
|
||||||
|
INSERT INTO "gaussdb"."tb_jiaofei" VALUES ('2024122121430310000038', '2024122121374910000018', '2024-01', 67.1, 67.1, '2024-12-21 21:43:03.066', '2024122111320410000001');
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Table structure for tb_records
|
||||||
|
-- ----------------------------
|
||||||
|
DROP TABLE IF EXISTS "gaussdb"."tb_records";
|
||||||
|
CREATE TABLE "gaussdb"."tb_records" (
|
||||||
|
"id" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
|
||||||
|
"usid" varchar(255) COLLATE "pg_catalog"."default",
|
||||||
|
"nmonth" varchar(255) COLLATE "pg_catalog"."default",
|
||||||
|
"waterusage" varchar(255) COLLATE "pg_catalog"."default"
|
||||||
|
)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Records of tb_records
|
||||||
|
-- ----------------------------
|
||||||
|
INSERT INTO "gaussdb"."tb_records" VALUES ('2024122121493610000049', '2024122121332710000009', '2024-01', '315');
|
||||||
|
INSERT INTO "gaussdb"."tb_records" VALUES ('2024122121495610000050', '2024122121335410000010', '2024-01', '216');
|
||||||
|
INSERT INTO "gaussdb"."tb_records" VALUES ('2024122121501110000051', '2024122121342710000011', '2024-01', '328');
|
||||||
|
INSERT INTO "gaussdb"."tb_records" VALUES ('2024122121501910000052', '2024122121345210000012', '2024-01', '143');
|
||||||
|
INSERT INTO "gaussdb"."tb_records" VALUES ('2024122121502810000053', '2024122121352210000013', '2024-01', '186');
|
||||||
|
INSERT INTO "gaussdb"."tb_records" VALUES ('2024122121503810000054', '2024122121354710000014', '2024-01', '405');
|
||||||
|
INSERT INTO "gaussdb"."tb_records" VALUES ('2024122121505010000055', '2024122121362410000015', '2024-01', '256');
|
||||||
|
INSERT INTO "gaussdb"."tb_records" VALUES ('2024122121505710000056', '2024122121364810000016', '2024-01', '248');
|
||||||
|
INSERT INTO "gaussdb"."tb_records" VALUES ('2024122121510610000057', '2024122121371810000017', '2024-01', '203');
|
||||||
|
INSERT INTO "gaussdb"."tb_records" VALUES ('2024122121511310000058', '2024122121374910000018', '2024-01', '218');
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Table structure for tb_shuijia
|
||||||
|
-- ----------------------------
|
||||||
|
DROP TABLE IF EXISTS "gaussdb"."tb_shuijia";
|
||||||
|
CREATE TABLE "gaussdb"."tb_shuijia" (
|
||||||
|
"id" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
|
||||||
|
"niany" varchar(255) COLLATE "pg_catalog"."default",
|
||||||
|
"price" float8
|
||||||
|
)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Records of tb_shuijia
|
||||||
|
-- ----------------------------
|
||||||
|
INSERT INTO "gaussdb"."tb_shuijia" VALUES ('2024122121381610000019', '2024-01', 3.6);
|
||||||
|
INSERT INTO "gaussdb"."tb_shuijia" VALUES ('2024122121382510000020', '2024-02', 4.1);
|
||||||
|
INSERT INTO "gaussdb"."tb_shuijia" VALUES ('2024122121383710000021', '2024-03', 3.7);
|
||||||
|
INSERT INTO "gaussdb"."tb_shuijia" VALUES ('2024122121385010000022', '2024-04', 3.3);
|
||||||
|
INSERT INTO "gaussdb"."tb_shuijia" VALUES ('2024122121390110000023', '2024-05', 3.8);
|
||||||
|
INSERT INTO "gaussdb"."tb_shuijia" VALUES ('2024122121391310000024', '2024-06', 3.1);
|
||||||
|
INSERT INTO "gaussdb"."tb_shuijia" VALUES ('2024122121392510000025', '2024-07', 4.1);
|
||||||
|
INSERT INTO "gaussdb"."tb_shuijia" VALUES ('2024122121393210000026', '2024-08', 3.6);
|
||||||
|
INSERT INTO "gaussdb"."tb_shuijia" VALUES ('2024122121394010000027', '2024-09', 3.2);
|
||||||
|
INSERT INTO "gaussdb"."tb_shuijia" VALUES ('2024122121395210000028', '2024-10', 3.5);
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Table structure for tb_user
|
||||||
|
-- ----------------------------
|
||||||
|
DROP TABLE IF EXISTS "gaussdb"."tb_user";
|
||||||
|
CREATE TABLE "gaussdb"."tb_user" (
|
||||||
|
"id" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
|
||||||
|
"username" varchar(20) COLLATE "pg_catalog"."default",
|
||||||
|
"password" varchar(20) COLLATE "pg_catalog"."default",
|
||||||
|
"name" varchar(18) COLLATE "pg_catalog"."default",
|
||||||
|
"gender" varchar(10) COLLATE "pg_catalog"."default",
|
||||||
|
"age" int4,
|
||||||
|
"tele" varchar(11) COLLATE "pg_catalog"."default",
|
||||||
|
"place" varchar(255) COLLATE "pg_catalog"."default"
|
||||||
|
)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Records of tb_user
|
||||||
|
-- ----------------------------
|
||||||
|
INSERT INTO "gaussdb"."tb_user" VALUES ('2024122121332710000009', 'user1', '123456', '李强', '男', 43, '13700000001', '北京朝阳区');
|
||||||
|
INSERT INTO "gaussdb"."tb_user" VALUES ('2024122121335410000010', 'user2', '123456', '王丽', '女', 34, '13700000002', '上海浦东新区');
|
||||||
|
INSERT INTO "gaussdb"."tb_user" VALUES ('2024122121342710000011', 'user3', '123456', '赵雷', '男', 51, '13700000003', '广州天河区');
|
||||||
|
INSERT INTO "gaussdb"."tb_user" VALUES ('2024122121345210000012', 'user4', '123456', '孙娜', '女', 38, '13700000004', '深圳福田区');
|
||||||
|
INSERT INTO "gaussdb"."tb_user" VALUES ('2024122121352210000013', 'user5', '123456', '周洋', '男', 43, '13700000005', '杭州西湖区');
|
||||||
|
INSERT INTO "gaussdb"."tb_user" VALUES ('2024122121354710000014', 'user6', '123456', '陈涛', '男', 28, '13700000006', '成都锦江区');
|
||||||
|
INSERT INTO "gaussdb"."tb_user" VALUES ('2024122121362410000015', 'user7', '123456', '刘红', '女', 25, '13700000007', '南京秦淮区');
|
||||||
|
INSERT INTO "gaussdb"."tb_user" VALUES ('2024122121364810000016', 'user8', '123456', '郑敏', '女', 46, '13700000008', '武汉武昌区');
|
||||||
|
INSERT INTO "gaussdb"."tb_user" VALUES ('2024122121371810000017', 'user9', '123456', '孙明', '男', 26, '13700000009', '重庆渝中区');
|
||||||
|
INSERT INTO "gaussdb"."tb_user" VALUES ('2024122121374910000018', 'user10', '123456', '张艳', '男', 24, '13700000010', '天津和平区');
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Table structure for tb_yichang
|
||||||
|
-- ----------------------------
|
||||||
|
DROP TABLE IF EXISTS "gaussdb"."tb_yichang";
|
||||||
|
CREATE TABLE "gaussdb"."tb_yichang" (
|
||||||
|
"id" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
|
||||||
|
"zhangh" varchar(255) COLLATE "pg_catalog"."default",
|
||||||
|
"yiclx" varchar(255) COLLATE "pg_catalog"."default",
|
||||||
|
"zhuangt" varchar(255) COLLATE "pg_catalog"."default",
|
||||||
|
"createtime" timestamp(6)
|
||||||
|
)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Records of tb_yichang
|
||||||
|
-- ----------------------------
|
||||||
|
INSERT INTO "gaussdb"."tb_yichang" VALUES ('2024122121432410000039', '2024122121332710000009', '水管破裂', '未处理', '2024-12-21 21:43:24.747');
|
||||||
|
INSERT INTO "gaussdb"."tb_yichang" VALUES ('2024122121434710000040', '2024122121335410000010', '欠费', '已处理', '2024-12-21 21:43:47.091');
|
||||||
|
INSERT INTO "gaussdb"."tb_yichang" VALUES ('2024122121440610000041', '2024122121342710000011', '用水超标', '未处理', '2024-12-21 21:44:06.807');
|
||||||
|
INSERT INTO "gaussdb"."tb_yichang" VALUES ('2024122121443310000042', '2024122121345210000012', '用水异常', '未处理', '2024-12-21 21:44:33.429');
|
||||||
|
INSERT INTO "gaussdb"."tb_yichang" VALUES ('2024122121444910000043', '2024122121352210000013', '余额不足', '已处理', '2024-12-21 21:44:49.031');
|
||||||
|
INSERT INTO "gaussdb"."tb_yichang" VALUES ('2024122121451110000044', '2024122121335410000010', '欠费', '未处理', '2024-12-21 21:45:11.442');
|
||||||
|
INSERT INTO "gaussdb"."tb_yichang" VALUES ('2024122121463410000045', '2024122121345210000012', '水管破裂', '已处理', '2024-12-21 21:46:34.445');
|
||||||
|
INSERT INTO "gaussdb"."tb_yichang" VALUES ('2024122121464510000046', '2024122121345210000012', '欠费', '未处理', '2024-12-21 21:46:45.795');
|
||||||
|
INSERT INTO "gaussdb"."tb_yichang" VALUES ('2024122121470110000047', '2024122121371810000017', '欠费', '未处理', '2024-12-21 21:47:01.31');
|
||||||
|
INSERT INTO "gaussdb"."tb_yichang" VALUES ('2024122121472810000048', '2024122121364810000016', '用水异常', '未处理', '2024-12-21 21:47:28.704');
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Primary Key structure for table tb_admin
|
||||||
|
-- ----------------------------
|
||||||
|
ALTER TABLE "gaussdb"."tb_admin" ADD CONSTRAINT "tb_admin_pkey" PRIMARY KEY ("id");
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Primary Key structure for table tb_employee
|
||||||
|
-- ----------------------------
|
||||||
|
ALTER TABLE "gaussdb"."tb_employee" ADD CONSTRAINT "tb_employee_pkey" PRIMARY KEY ("id");
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Primary Key structure for table tb_jiaofei
|
||||||
|
-- ----------------------------
|
||||||
|
ALTER TABLE "gaussdb"."tb_jiaofei" ADD CONSTRAINT "tb_jiaofei_pkey" PRIMARY KEY ("id");
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Primary Key structure for table tb_records
|
||||||
|
-- ----------------------------
|
||||||
|
ALTER TABLE "gaussdb"."tb_records" ADD CONSTRAINT "tb_records_pkey" PRIMARY KEY ("id");
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Primary Key structure for table tb_shuijia
|
||||||
|
-- ----------------------------
|
||||||
|
ALTER TABLE "gaussdb"."tb_shuijia" ADD CONSTRAINT "tb_shuijia_pkey" PRIMARY KEY ("id");
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Primary Key structure for table tb_user
|
||||||
|
-- ----------------------------
|
||||||
|
ALTER TABLE "gaussdb"."tb_user" ADD CONSTRAINT "tb_user_pkey" PRIMARY KEY ("id");
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Primary Key structure for table tb_yichang
|
||||||
|
-- ----------------------------
|
||||||
|
ALTER TABLE "gaussdb"."tb_yichang" ADD CONSTRAINT "tb_yichang_pkey" PRIMARY KEY ("id");
|
@ -0,0 +1,95 @@
|
|||||||
|
--1. 触发器:在插入用水记录时,自动更新异常记录
|
||||||
|
--需求:
|
||||||
|
--当插入一条新的用水记录时,系统会自动检查用水量是否超过预定的阈值,如果超过则在异常记录表中插入一条“用水超标”的异常记录。
|
||||||
|
CREATE OR REPLACE FUNCTION check_water_usage()
|
||||||
|
RETURNS TRIGGER AS $$
|
||||||
|
BEGIN
|
||||||
|
IF NEW.waterusage > 500 THEN
|
||||||
|
INSERT INTO "tb_yichang" (zhangh, yiclx, zhuangt, createtime)
|
||||||
|
VALUES (NEW.usid, '用水超标', '未处理', NOW());
|
||||||
|
END IF;
|
||||||
|
RETURN NEW;
|
||||||
|
END;
|
||||||
|
$$ LANGUAGE plpgsql;
|
||||||
|
|
||||||
|
CREATE TRIGGER trigger_check_water_usage
|
||||||
|
AFTER INSERT ON "tb_records"
|
||||||
|
FOR EACH ROW
|
||||||
|
EXECUTE FUNCTION check_water_usage();
|
||||||
|
|
||||||
|
|
||||||
|
--2. 触发器:在更新水价时记录变更历史
|
||||||
|
--需求:
|
||||||
|
--每当更新水价表时,记录水价变更历史,保留每次变更的水价和变更时间。
|
||||||
|
CREATE OR REPLACE FUNCTION log_water_price_change()
|
||||||
|
RETURNS TRIGGER AS $$
|
||||||
|
BEGIN
|
||||||
|
INSERT INTO "tb_water_price_history" (niany, old_price, new_price, change_time)
|
||||||
|
VALUES (NEW.niany, OLD.price, NEW.price, NOW());
|
||||||
|
RETURN NEW;
|
||||||
|
END;
|
||||||
|
$$ LANGUAGE plpgsql;
|
||||||
|
|
||||||
|
CREATE TRIGGER trigger_log_water_price_change
|
||||||
|
AFTER UPDATE ON "tb_shuijia"
|
||||||
|
FOR EACH ROW
|
||||||
|
EXECUTE FUNCTION log_water_price_change();
|
||||||
|
|
||||||
|
|
||||||
|
--3. 触发器:删除用户时,删除该用户的所有用水记录
|
||||||
|
--需求:
|
||||||
|
--当删除用户时,自动删除该用户的所有用水记录,保持数据一致性。
|
||||||
|
CREATE OR REPLACE FUNCTION delete_user_water_usage()
|
||||||
|
RETURNS TRIGGER AS $$
|
||||||
|
BEGIN
|
||||||
|
DELETE FROM "tb_records"
|
||||||
|
WHERE usid = OLD.id;
|
||||||
|
RETURN OLD;
|
||||||
|
END;
|
||||||
|
$$ LANGUAGE plpgsql;
|
||||||
|
|
||||||
|
CREATE TRIGGER trigger_delete_user_water_usage
|
||||||
|
AFTER DELETE ON "tb_user"
|
||||||
|
FOR EACH ROW
|
||||||
|
EXECUTE FUNCTION delete_user_water_usage();
|
||||||
|
|
||||||
|
|
||||||
|
--4. 触发器:在插入异常记录时,检查用户的余额并更新状态
|
||||||
|
--需求:
|
||||||
|
--当插入一条新的异常记录时,如果异常类型为“余额不足”,系统会检查用户的余额,若余额不足则自动将异常记录的状态更新为“已处理”。
|
||||||
|
CREATE OR REPLACE FUNCTION update_exception_status_for_balance()
|
||||||
|
RETURNS TRIGGER AS $$
|
||||||
|
BEGIN
|
||||||
|
IF NEW.yiclx = '余额不足' THEN
|
||||||
|
IF EXISTS (SELECT 1 FROM "tb_user_balance" WHERE usid = NEW.zhangh AND balance < 0) THEN
|
||||||
|
UPDATE "tb_yichang"
|
||||||
|
SET zhuangt = '已处理'
|
||||||
|
WHERE id = NEW.id;
|
||||||
|
END IF;
|
||||||
|
END IF;
|
||||||
|
RETURN NEW;
|
||||||
|
END;
|
||||||
|
$$ LANGUAGE plpgsql;
|
||||||
|
|
||||||
|
CREATE TRIGGER trigger_update_exception_status_for_balance
|
||||||
|
AFTER INSERT ON "tb_yichang"
|
||||||
|
FOR EACH ROW
|
||||||
|
EXECUTE FUNCTION update_exception_status_for_balance();
|
||||||
|
|
||||||
|
|
||||||
|
--5. 触发器:在更新用户信息时,记录操作日志
|
||||||
|
--需求:
|
||||||
|
--每当更新用户信息时,系统会自动将变更的用户信息(如名称、电话、地址等)记录到操作日志表中。
|
||||||
|
CREATE OR REPLACE FUNCTION log_user_update()
|
||||||
|
RETURNS TRIGGER AS $$
|
||||||
|
BEGIN
|
||||||
|
INSERT INTO "tb_user_update_log" (user_id, old_name, new_name, old_tele, new_tele, old_place, new_place, update_time)
|
||||||
|
VALUES (NEW.id, OLD.name, NEW.name, OLD.tele, NEW.tele, OLD.place, NEW.place, NOW());
|
||||||
|
RETURN NEW;
|
||||||
|
END;
|
||||||
|
$$ LANGUAGE plpgsql;
|
||||||
|
|
||||||
|
CREATE TRIGGER trigger_log_user_update
|
||||||
|
AFTER UPDATE ON "tb_user"
|
||||||
|
FOR EACH ROW
|
||||||
|
EXECUTE FUNCTION log_user_update();
|
Loading…
Reference in new issue