add
This commit is contained in:
@@ -20,8 +20,8 @@ BEGIN
|
|||||||
RAISE NOTICE 'record table already exists';
|
RAISE NOTICE 'record table already exists';
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
IF NOT EXISTS (SELECT 1 FROM information_schema.tables WHERE table_name = 'deal') THEN
|
IF NOT EXISTS (SELECT 1 FROM information_schema.tables WHERE table_name = 'record_deal') THEN
|
||||||
CREATE TABLE deal (
|
CREATE TABLE record_deal (
|
||||||
id UUID DEFAULT gen_random_uuid_v7() PRIMARY KEY NOT NULL,
|
id UUID DEFAULT gen_random_uuid_v7() PRIMARY KEY NOT NULL,
|
||||||
record_id UUID NOT NULL,
|
record_id UUID NOT NULL,
|
||||||
variety_id VARCHAR(50) NOT NULL, -- 品种id
|
variety_id VARCHAR(50) NOT NULL, -- 品种id
|
||||||
@@ -48,28 +48,28 @@ BEGIN
|
|||||||
created_at TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
created_at TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||||
updated_at TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP
|
updated_at TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||||
);
|
);
|
||||||
CREATE TRIGGER update_deal_updated_at
|
CREATE TRIGGER update_record_deal_updated_at
|
||||||
BEFORE UPDATE ON "deal"
|
BEFORE UPDATE ON "record_deal"
|
||||||
FOR EACH ROW
|
FOR EACH ROW
|
||||||
EXECUTE FUNCTION update_data_modified_column();
|
EXECUTE FUNCTION update_data_modified_column();
|
||||||
|
|
||||||
-- 1. 开仓日期索引(支持「未删除+开仓日期」查询)
|
-- 1. 开仓日期索引(支持「未删除+开仓日期」查询)
|
||||||
CREATE INDEX idx_trade_open_date ON deal (deleted, open_year, open_month, open_day);
|
CREATE INDEX idx_trade_open_date ON record_deal (deleted, open_year, open_month, open_day);
|
||||||
|
|
||||||
-- 2. 品种+合约+方向组合索引(支持「未删除+品种+合约+方向」高频查询)
|
-- 2. 品种+合约+方向组合索引(支持「未删除+品种+合约+方向」高频查询)
|
||||||
CREATE INDEX idx_trade_variety_contract_dir ON deal (deleted, variety_name, contract, direction);
|
CREATE INDEX idx_trade_variety_contract_dir ON record_deal (deleted, variety_name, contract, direction);
|
||||||
|
|
||||||
-- 3. 未平仓记录索引(支持「未删除+未平仓」查询)
|
-- 3. 未平仓记录索引(支持「未删除+未平仓」查询)
|
||||||
CREATE INDEX idx_trade_unclosed ON deal (deleted, variety_name, contract) WHERE close_year IS NULL;
|
CREATE INDEX idx_trade_unclosed ON record_deal (deleted, variety_name, contract) WHERE close_year IS NULL;
|
||||||
|
|
||||||
-- 4. 平仓日期索引(支持「未删除+已平仓+平仓日期」查询)
|
-- 4. 平仓日期索引(支持「未删除+已平仓+平仓日期」查询)
|
||||||
CREATE INDEX idx_trade_close_date ON deal (deleted, close_year, close_month, close_day) WHERE close_year IS NOT NULL;
|
CREATE INDEX idx_trade_close_date ON record_deal (deleted, close_year, close_month, close_day) WHERE close_year IS NOT NULL;
|
||||||
|
|
||||||
-- 5. 盈亏排序索引(支持「未删除+已平仓+盈亏排序」查询)
|
-- 5. 盈亏排序索引(支持「未删除+已平仓+盈亏排序」查询)
|
||||||
CREATE INDEX idx_trade_profit ON deal (deleted, close_profit DESC) WHERE close_year IS NOT NULL;
|
CREATE INDEX idx_trade_profit ON record_deal (deleted, close_profit DESC) WHERE close_year IS NOT NULL;
|
||||||
|
|
||||||
RAISE NOTICE 'created deal table and trigger';
|
RAISE NOTICE 'created record_deal table and trigger';
|
||||||
ELSE
|
ELSE
|
||||||
RAISE NOTICE 'deal table already exists';
|
RAISE NOTICE 'record_deal table already exists';
|
||||||
END IF;
|
END IF;
|
||||||
END $$;
|
END $$;
|
||||||
Reference in New Issue
Block a user