postgresql 分表分区分库 测试
创建子表
CREATE TABLE testdb_2022 (
CHECK ( createtime >= DATE '2022-01-01' AND createtime < DATE '2023-01-01' )
) INHERITS (testdb);
CREATE TABLE testdb_2023 (
CHECK ( createtime >= DATE '2023-01-01' AND createtime < DATE '2024-01-01' )
) INHERITS (testdb);
分区函数
CREATE OR REPLACE FUNCTION function_insert_testdb()
RETURNS TRIGGER AS $$
BEGIN
IF ( NEW.vdate >= DATE '2022-01-01' AND NEW.vdate < DATE '2023-01-01' ) THEN
INSERT INTO testdb_2022 VALUES (NEW.*);
ELSIF ( NEW.vdate >= DATE '2023-01-01' AND NEW.vdate < DATE '2024-01-01' ) THEN
INSERT INTO testdb_2023 VALUES (NEW.*);
ELSE
RAISE EXCEPTION 'Date out of range. Fix the function_insert_tb_log() function!';
END IF;
RETURN NULL;
END;
$$
LANGUAGE plpgsql;
触发器
CREATE TRIGGER trigger_insert_testdb
BEFORE INSERT ON testdb
FOR EACH ROW
EXECUTE PROCEDURE function_insert_testdb();
https://www.yii666.com/article/689575.html
浙公网安备 33010602011771号