postgresql 分表分区分库 测试

发布时间 2023-08-30 21:15:07作者: CrossPython
创建子表
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