| 123456789101112131415161718192021222324252627282930313233343536 |
- -- 灵越智报 v2.0 补充表结构(兼容 VARCHAR(36) ID 版本)
- -- PostgreSQL 15+
- -- 兼容 init.sql 中使用的 VARCHAR(36) ID 类型
- -- ============================================
- -- 6. 文本存储路径表(text_storage)
- -- 仅创建核心需要的表
- -- ============================================
- CREATE TABLE IF NOT EXISTS text_storage (
- id VARCHAR(36) PRIMARY KEY DEFAULT replace(gen_random_uuid()::text, '-', ''),
- document_id VARCHAR(36) NOT NULL REFERENCES documents(id) ON DELETE CASCADE,
- file_path VARCHAR(500) NOT NULL,
- file_size BIGINT,
- checksum VARCHAR(64),
- created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
- updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
- );
- CREATE INDEX IF NOT EXISTS idx_text_storage_document_id ON text_storage(document_id);
- CREATE UNIQUE INDEX IF NOT EXISTS idx_text_storage_document_unique ON text_storage(document_id);
- -- 创建更新时间触发器
- CREATE OR REPLACE FUNCTION update_text_storage_updated_at()
- RETURNS TRIGGER AS $$
- BEGIN
- NEW.updated_at = CURRENT_TIMESTAMP;
- RETURN NEW;
- END;
- $$ LANGUAGE plpgsql;
- DROP TRIGGER IF EXISTS update_text_storage_updated_at ON text_storage;
- CREATE TRIGGER update_text_storage_updated_at BEFORE UPDATE ON text_storage
- FOR EACH ROW EXECUTE FUNCTION update_text_storage_updated_at();
- -- 显示创建结果
- SELECT 'text_storage 表创建成功' AS result;
|