add
This commit is contained in:
142
bak.md
142
bak.md
@@ -1,142 +0,0 @@
|
|||||||
-- =========================================================
|
|
||||||
-- trading_records.sql (PostgreSQL 17.4+)
|
|
||||||
-- =========================================================
|
|
||||||
\pset pager off
|
|
||||||
\timing on
|
|
||||||
-- 切换到目标数据库
|
|
||||||
\c postgres;
|
|
||||||
|
|
||||||
-- 1 保证扩展存在(重复执行无害)
|
|
||||||
CREATE EXTENSION IF NOT EXISTS "moddatetime" SCHEMA public;
|
|
||||||
|
|
||||||
DO $$
|
|
||||||
BEGIN
|
|
||||||
RAISE NOTICE '🚀============ trading_records 部署开始 ============🚀';
|
|
||||||
END $$;
|
|
||||||
|
|
||||||
-- 2 建表(幂等)
|
|
||||||
DO $$
|
|
||||||
BEGIN
|
|
||||||
IF NOT EXISTS (
|
|
||||||
SELECT 1
|
|
||||||
FROM information_schema.tables
|
|
||||||
WHERE table_schema = 'public'
|
|
||||||
AND table_name = 'trading_records'
|
|
||||||
) THEN
|
|
||||||
CREATE TABLE trading_records (
|
|
||||||
id UUID DEFAULT gen_random_uuid() PRIMARY KEY, -- id
|
|
||||||
open_year SMALLINT NOT NULL, -- 开仓时间-年
|
|
||||||
open_month SMALLINT NOT NULL CHECK (open_month BETWEEN 1 AND 12), -- 开仓时间-月
|
|
||||||
open_day SMALLINT NOT NULL CHECK (open_day BETWEEN 1 AND 31), -- 开仓时间-日
|
|
||||||
symbol VARCHAR(32) NOT NULL, -- 品种
|
|
||||||
contract VARCHAR(32) NOT NULL, -- 合约
|
|
||||||
direction VARCHAR(4) NOT NULL CHECK (direction IN ('多','空')), -- 方向
|
|
||||||
open_price NUMERIC(18,8) NOT NULL, -- 开仓价格
|
|
||||||
open_fee NUMERIC(18,8) NOT NULL, -- 开仓手续费
|
|
||||||
close_year SMALLINT, -- 平仓时间-年
|
|
||||||
close_month SMALLINT CHECK (close_month BETWEEN 1 AND 12), -- 平仓时间-月
|
|
||||||
close_day SMALLINT CHECK (close_day BETWEEN 1 AND 31), -- 平仓时间-日
|
|
||||||
close_price NUMERIC(18,8), -- 平仓价格
|
|
||||||
close_fee NUMERIC(18,8), -- 平仓手续费
|
|
||||||
close_diff NUMERIC(18,8), -- 平仓差价
|
|
||||||
tick_price NUMERIC(18,8), -- 跳点价格
|
|
||||||
diff_pnl NUMERIC(18,8), -- 差价盈亏
|
|
||||||
total_fee NUMERIC(18,8), -- 手续费
|
|
||||||
close_pnl NUMERIC(18,8), -- 平仓盈亏
|
|
||||||
deleted BOOLEAN NOT NULL DEFAULT FALSE, -- 删除状态
|
|
||||||
created_at TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP, -- 记录创建时间
|
|
||||||
updated_at TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP -- 记录修改时间
|
|
||||||
);
|
|
||||||
|
|
||||||
-- 3 触发器:自动刷新 updated_at
|
|
||||||
CREATE TRIGGER trg_trading_records_updated_at
|
|
||||||
BEFORE UPDATE ON trading_records
|
|
||||||
FOR EACH ROW
|
|
||||||
EXECUTE FUNCTION moddatetime(updated_at);
|
|
||||||
|
|
||||||
RAISE NOTICE 'trading_records 表已创建';
|
|
||||||
ELSE
|
|
||||||
RAISE NOTICE 'trading_records 表已存在,跳过';
|
|
||||||
END IF;
|
|
||||||
END $$;
|
|
||||||
|
|
||||||
-- 4 索引(幂等)
|
|
||||||
CREATE INDEX IF NOT EXISTS idx_trd_open_ym
|
|
||||||
ON trading_records (open_year, open_month);
|
|
||||||
|
|
||||||
CREATE INDEX IF NOT EXISTS idx_trd_close_ym
|
|
||||||
ON trading_records (close_year, close_month)
|
|
||||||
WHERE close_year IS NOT NULL;
|
|
||||||
|
|
||||||
CREATE INDEX IF NOT EXISTS idx_trd_symbol_contract
|
|
||||||
ON trading_records (symbol, contract);
|
|
||||||
|
|
||||||
CREATE INDEX IF NOT EXISTS idx_trd_deleted_updated
|
|
||||||
ON trading_records (deleted, updated_at DESC);
|
|
||||||
|
|
||||||
DO $$
|
|
||||||
BEGIN
|
|
||||||
RAISE NOTICE '全部索引已确保存在';
|
|
||||||
END $$;
|
|
||||||
|
|
||||||
DO $$
|
|
||||||
BEGIN
|
|
||||||
RAISE NOTICE '============ trading_records 部署完成 ============';
|
|
||||||
END $$;
|
|
||||||
|
|
||||||
----
|
|
||||||
|
|
||||||
open_year - 开仓时间:年
|
|
||||||
open_month - 开仓时间:月
|
|
||||||
open_day - 开仓时间:日
|
|
||||||
symbol - 品种
|
|
||||||
contract - 合约
|
|
||||||
direction - 方向
|
|
||||||
open_price - 开仓价格
|
|
||||||
open_fee - 开仓手续费
|
|
||||||
close_year - 平仓时间:年
|
|
||||||
close_month - 平仓时间:月
|
|
||||||
close_day - 平仓时间:日
|
|
||||||
close_price - 平仓价格
|
|
||||||
close_fee - 平仓手续费
|
|
||||||
price_diff - 平仓差价
|
|
||||||
min_tick - 品种最小跳点
|
|
||||||
tick_price - 跳点价格
|
|
||||||
diff_pnl - 差价盈亏
|
|
||||||
total_fee - 手续费合计
|
|
||||||
close_pnl - 平仓盈亏
|
|
||||||
|
|
||||||
这个文件是一份模板文件,我的SQL语句是:
|
|
||||||
CREATE TABLE trading_records (
|
|
||||||
id UUID DEFAULT gen_random_uuid() PRIMARY KEY, -- id
|
|
||||||
event_type VARCHAR(40) NOT NULL, -- 事件名称
|
|
||||||
payload JSONB NOT NULL, -- 数据
|
|
||||||
deleted BOOLEAN NOT NULL DEFAULT FALSE, -- 删除状态
|
|
||||||
created_at TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP, -- 记录创建时间
|
|
||||||
updated_at TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP -- 记录修改时间
|
|
||||||
);
|
|
||||||
|
|
||||||
其中payload的字段为:
|
|
||||||
{
|
|
||||||
open_year - 开仓时间:年
|
|
||||||
open_month - 开仓时间:月
|
|
||||||
open_day - 开仓时间:日
|
|
||||||
symbol - 品种
|
|
||||||
contract - 合约
|
|
||||||
direction - 方向
|
|
||||||
open_price - 开仓价格
|
|
||||||
open_fee - 开仓手续费
|
|
||||||
close_year - 平仓时间:年
|
|
||||||
close_month - 平仓时间:月
|
|
||||||
close_day - 平仓时间:日
|
|
||||||
close_price - 平仓价格
|
|
||||||
close_fee - 平仓手续费
|
|
||||||
price_diff - 平仓差价
|
|
||||||
min_tick - 品种最小跳点
|
|
||||||
tick_price - 跳点价格
|
|
||||||
diff_pnl - 差价盈亏
|
|
||||||
total_fee - 手续费合计
|
|
||||||
close_pnl - 平仓盈亏
|
|
||||||
}
|
|
||||||
|
|
||||||
你的任务是按照上传的文件的样式,帮我调整新增的业务逻辑。
|
|
||||||
Reference in New Issue
Block a user