diff --git a/backend/futures_trade_record/sql/02_create_update_function.sql b/backend/futures_trade_record/sql/02_create_update_function.sql new file mode 100644 index 0000000..527bf59 --- /dev/null +++ b/backend/futures_trade_record/sql/02_create_update_function.sql @@ -0,0 +1,7 @@ +CREATE OR REPLACE FUNCTION update_data_modified_column() +RETURNS TRIGGER AS $$ +BEGIN + NEW.updated_at = CURRENT_TIMESTAMP; + RETURN NEW; +END; +$$ LANGUAGE plpgsql VOLATILE; \ No newline at end of file diff --git a/backend/futures_trade_record/sql/02_create_record_table.sql b/backend/futures_trade_record/sql/03_create_record_table.sql similarity index 74% rename from backend/futures_trade_record/sql/02_create_record_table.sql rename to backend/futures_trade_record/sql/03_create_record_table.sql index 503f475..683c48d 100644 --- a/backend/futures_trade_record/sql/02_create_record_table.sql +++ b/backend/futures_trade_record/sql/03_create_record_table.sql @@ -1,14 +1,6 @@ -- 切换到目标数据库 \c postgres; -CREATE OR REPLACE FUNCTION update_record_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_name = 'record') THEN @@ -21,7 +13,7 @@ BEGIN CREATE TRIGGER update_record_updated_at BEFORE UPDATE ON "record" FOR EACH ROW - EXECUTE FUNCTION update_record_modified_column(); + EXECUTE FUNCTION update_data_modified_column(); RAISE NOTICE 'created record table and trigger'; ELSE diff --git a/backend/futures_trade_record/sql/03_create_deal_table.sql b/backend/futures_trade_record/sql/04_create_deal_table.sql similarity index 92% rename from backend/futures_trade_record/sql/03_create_deal_table.sql rename to backend/futures_trade_record/sql/04_create_deal_table.sql index 165da42..15864ba 100644 --- a/backend/futures_trade_record/sql/03_create_deal_table.sql +++ b/backend/futures_trade_record/sql/04_create_deal_table.sql @@ -1,14 +1,6 @@ -- 切换到目标数据库 \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_name = 'deal') THEN @@ -42,7 +34,7 @@ BEGIN CREATE TRIGGER update_deal_updated_at BEFORE UPDATE ON "deal" FOR EACH ROW - EXECUTE FUNCTION update_deal_modified_column(); + EXECUTE FUNCTION update_data_modified_column(); -- 1. 开仓日期索引(支持「未删除+开仓日期」查询) CREATE INDEX idx_trade_open_date ON deal (deleted, open_year, open_month, open_day); diff --git a/backend/futures_trade_record/sql/04_create_variety_table.sql b/backend/futures_trade_record/sql/04_create_variety_table.sql new file mode 100644 index 0000000..8f50acf --- /dev/null +++ b/backend/futures_trade_record/sql/04_create_variety_table.sql @@ -0,0 +1,41 @@ +-- 切换到目标数据库 +\c postgres; + +DO $$ +BEGIN + IF NOT EXISTS (SELECT 1 FROM information_schema.tables WHERE table_name = 'variety') THEN + CREATE TABLE variety ( + id UUID DEFAULT gen_random_uuid_v7() PRIMARY KEY NOT NULL, + 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_variety_updated_at + BEFORE UPDATE ON "variety" + FOR EACH ROW + EXECUTE FUNCTION update_data_modified_column(); + + RAISE NOTICE 'created variety table and trigger'; + ELSE + RAISE NOTICE 'variety table already exists'; + END IF; + + IF NOT EXISTS (SELECT 1 FROM information_schema.tables WHERE table_name = 'variety_name') THEN + CREATE TABLE variety_name ( + id UUID DEFAULT gen_random_uuid_v7() PRIMARY KEY NOT NULL, + name VARCHAR(50) NOT NULL, + code VARCHAR(50) NOT NULL, + 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_variety_name_updated_at + BEFORE UPDATE ON "variety_name" + FOR EACH ROW + EXECUTE FUNCTION update_data_modified_column(); + + RAISE NOTICE 'created variety_name table and trigger'; + ELSE + RAISE NOTICE 'variety_name table already exists'; + END IF; +END $$; \ No newline at end of file