From 310173bc9f487646951d48e4f78be2e4cc9e41f1 Mon Sep 17 00:00:00 2001 From: vipg Date: Fri, 14 Nov 2025 16:17:35 +0800 Subject: [PATCH] add --- .../sql/03_create_deal_table.sql | 36 +++++++++++++++++++ ...pen_table.sql => 04_create_open_table.sql} | 5 ++- ...se_table.sql => 05_create_close_table.sql} | 5 ++- 3 files changed, 40 insertions(+), 6 deletions(-) create mode 100644 backend/futures_trade_record/sql/03_create_deal_table.sql rename backend/futures_trade_record/sql/{03_create_open_table.sql => 04_create_open_table.sql} (82%) rename backend/futures_trade_record/sql/{04_create_close_table.sql => 05_create_close_table.sql} (82%) diff --git a/backend/futures_trade_record/sql/03_create_deal_table.sql b/backend/futures_trade_record/sql/03_create_deal_table.sql new file mode 100644 index 0000000..5c57599 --- /dev/null +++ b/backend/futures_trade_record/sql/03_create_deal_table.sql @@ -0,0 +1,36 @@ +-- 切换到目标数据库 +\c postgres; + +CREATE OR REPLACE FUNCTION update_deal_modified_column() +RETURNS TRIGGER AS $$ +BEGIN + NEW.updated_at = CURRENT_TIMESTAMP; + RETURN NEW; +END; +$$ LANGUAGE plpgsql VOLATILE; + +DO $$ +BEGIN + IF NOT EXISTS (SELECT 1 FROM information_schema.tables WHERE table_deal = 'deal') THEN + CREATE TABLE deal ( + id UUID DEFAULT gen_random_uuid_v7() PRIMARY KEY NOT NULL, + record_id UUID NOT NULL, + variety_id VARCHAR(50) NOT NULL, -- 品种id + contract VARCHAR(50) NOT NULL, -- 合约(如:2401) + direction VARCHAR(20) NOT NULL CHECK (direction IN ('多', '空')), -- 限制合法方向 + variety_tick NUMERIC(12, 6), + variety_tick_price NUMERIC(12, 6), + deleted BOOLEAN NOT NULL DEFAULT FALSE, + created_at TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP + ); + CREATE TRIGGER update_deal_updated_at + BEFORE UPDATE ON "deal" + FOR EACH ROW + EXECUTE FUNCTION update_deal_modified_column(); + + RAISE NOTICE 'created deal table and trigger'; + ELSE + RAISE NOTICE 'deal table already exists'; + END IF; +END $$; \ No newline at end of file diff --git a/backend/futures_trade_record/sql/03_create_open_table.sql b/backend/futures_trade_record/sql/04_create_open_table.sql similarity index 82% rename from backend/futures_trade_record/sql/03_create_open_table.sql rename to backend/futures_trade_record/sql/04_create_open_table.sql index 3d39a38..6dc9a67 100644 --- a/backend/futures_trade_record/sql/03_create_open_table.sql +++ b/backend/futures_trade_record/sql/04_create_open_table.sql @@ -18,9 +18,8 @@ BEGIN year INT NOT NULL, month INT NOT NULL, day INT NOT NULL, - variety_id VARCHAR(50) NOT NULL, -- 品种id - contract VARCHAR(50) NOT NULL, -- 合约(如:2401) - direction VARCHAR(20) NOT NULL CHECK (direction IN ('多', '空')), -- 限制合法方向 + open_price NUMERIC(12, 6), + open_commission NUMERIC(10, 6) DEFAULT 0.00, deleted BOOLEAN NOT NULL DEFAULT FALSE, created_at TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP diff --git a/backend/futures_trade_record/sql/04_create_close_table.sql b/backend/futures_trade_record/sql/05_create_close_table.sql similarity index 82% rename from backend/futures_trade_record/sql/04_create_close_table.sql rename to backend/futures_trade_record/sql/05_create_close_table.sql index 065a05e..dcb4ada 100644 --- a/backend/futures_trade_record/sql/04_create_close_table.sql +++ b/backend/futures_trade_record/sql/05_create_close_table.sql @@ -18,9 +18,8 @@ BEGIN year INT NOT NULL, month INT NOT NULL, day INT NOT NULL, - variety_id VARCHAR(50) NOT NULL, -- 品种id - contract VARCHAR(50) NOT NULL, -- 合约(如:2401) - direction VARCHAR(20) NOT NULL CHECK (direction IN ('多', '空')), -- 限制合法方向 + close_price NUMERIC(12, 6), + close_commission NUMERIC(10, 6) DEFAULT 0.00, deleted BOOLEAN NOT NULL DEFAULT FALSE, created_at TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP