PG数据库切换测试用例验证
This commit is contained in:
60
1-sql/2026-01-19/pg-/file_storage.sql
Normal file
60
1-sql/2026-01-19/pg-/file_storage.sql
Normal file
@@ -0,0 +1,60 @@
|
||||
-- 1. 创建表结构
|
||||
CREATE TABLE "file_storage" (
|
||||
-- [兼容模式] 支持 AUTO_INCREMENT
|
||||
"id" BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||
|
||||
"fileName" VARCHAR(255) NOT NULL DEFAULT '',
|
||||
"fileId" BIGINT NOT NULL,
|
||||
"userGroupId" BIGINT DEFAULT NULL,
|
||||
"tenantId" BIGINT DEFAULT NULL,
|
||||
"userId" BIGINT DEFAULT NULL,
|
||||
"dirId" BIGINT NOT NULL,
|
||||
"fileBizType" INTEGER DEFAULT NULL,
|
||||
"fileSuffix" VARCHAR(50) NOT NULL DEFAULT '',
|
||||
|
||||
-- [兼容模式] 去掉 UNSIGNED,使用 BIGINT (范围足够覆盖)
|
||||
"fileSize" BIGINT NOT NULL,
|
||||
|
||||
-- [兼容模式] 支持 DATETIME 类型
|
||||
"createTime" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
|
||||
-- [兼容模式] 支持 ON UPDATE 语法,无需触发器实现自动更新
|
||||
"updateTime" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
|
||||
"fullPath" VARCHAR(1024) NOT NULL DEFAULT '',
|
||||
|
||||
-- [修复核心报错]
|
||||
-- 将 date_format 替换为标准的提取拼接逻辑,确保是 IMMUTABLE (不可变) 表达式
|
||||
"createYearMonth" VARCHAR(7) GENERATED ALWAYS AS (
|
||||
CAST(EXTRACT(YEAR FROM "createTime") AS VARCHAR) || '-' ||
|
||||
LPAD(CAST(EXTRACT(MONTH FROM "createTime") AS VARCHAR), 2, '0')
|
||||
) STORED
|
||||
);
|
||||
|
||||
-- 2. 创建索引
|
||||
CREATE INDEX "idx_dirid_size" ON "file_storage" ("dirId", "fileSize");
|
||||
CREATE INDEX "idx_userid_size" ON "file_storage" ("userId", "fileSize");
|
||||
CREATE INDEX "idx_dirid_createtime_size" ON "file_storage" ("dirId", "createTime", "fileSize");
|
||||
CREATE INDEX "idx_userid_createtime_size" ON "file_storage" ("userId", "createTime", "fileSize");
|
||||
CREATE INDEX "idx_dirid_createmonth_size" ON "file_storage" ("dirId", "createYearMonth", "fileSize");
|
||||
CREATE INDEX "idx_userid_createmonth_size" ON "file_storage" ("userId", "createYearMonth", "fileSize");
|
||||
CREATE INDEX "idx_dir_file_suffix_biz_createtime_size" ON "file_storage" ("dirId", "fileName", "fileSuffix", "fileBizType", "createTime", "fileSize");
|
||||
CREATE INDEX "idx_filename" ON "file_storage" ("fileName");
|
||||
|
||||
-- 3. 添加字段注释
|
||||
COMMENT ON TABLE "file_storage" IS '文件存储统计主表(支持项目/学科/用户维度的存储占用统计)';
|
||||
COMMENT ON COLUMN "file_storage"."id" IS '主键ID(自增)';
|
||||
COMMENT ON COLUMN "file_storage"."fileName" IS '文件名(含后缀)';
|
||||
COMMENT ON COLUMN "file_storage"."fileId" IS '文件唯一标识ID(关联文件元数据表)';
|
||||
COMMENT ON COLUMN "file_storage"."userGroupId" IS '用户组ID';
|
||||
COMMENT ON COLUMN "file_storage"."tenantId" IS '租户ID';
|
||||
COMMENT ON COLUMN "file_storage"."userId" IS '文件所属用户ID';
|
||||
COMMENT ON COLUMN "file_storage"."dirId" IS '保存所有父目录ID(项目/学科等目录的唯一标识)';
|
||||
COMMENT ON COLUMN "file_storage"."fileBizType" IS '文件业务类型(1:模型文件 2:仿真报告、3:计算文件、4:曲线文件、5:云图文件,6:网格文件,7:计算过程文件)';
|
||||
COMMENT ON COLUMN "file_storage"."fileSuffix" IS '文件后缀(如txt、jpg、pdf)';
|
||||
COMMENT ON COLUMN "file_storage"."fileSize" IS '文件大小(字节数,存储占用计算依据)';
|
||||
COMMENT ON COLUMN "file_storage"."createTime" IS '文件创建时间';
|
||||
COMMENT ON COLUMN "file_storage"."updateTime" IS '记录更新时间(自动更新)';
|
||||
COMMENT ON COLUMN "file_storage"."fullPath" IS '文件完整路径(冗余字段,优化查询)';
|
||||
COMMENT ON COLUMN "file_storage"."createYearMonth" IS '创建年月(自动生成)';
|
||||
|
||||
Reference in New Issue
Block a user