diff --git a/backend/sql/04_country.sql b/backend/sql/04_country.sql index 6fbeaaa..402fd82 100644 --- a/backend/sql/04_country.sql +++ b/backend/sql/04_country.sql @@ -21,7 +21,7 @@ BEGIN END IF; IF NOT EXISTS (SELECT 1 FROM information_schema.tables WHERE table_name = 'country_name') THEN - CREATE TABLE country_ ( + CREATE TABLE country_name ( id UUID DEFAULT gen_random_uuid_v7() PRIMARY KEY NOT NULL, country_id UUID NOT NULL, name VARCHAR NOT NULL, diff --git a/backend/sql/05_exchange.sql b/backend/sql/05_exchange.sql deleted file mode 100644 index 94251e9..0000000 --- a/backend/sql/05_exchange.sql +++ /dev/null @@ -1,97 +0,0 @@ --- 切换到目标数据库 -\c postgres; - -DO $$ -BEGIN - IF NOT EXISTS (SELECT 1 FROM information_schema.tables WHERE table_name = 'exchange') THEN - CREATE TABLE exchange ( - 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_exchange_updated_at - BEFORE UPDATE ON "deleted" - FOR EACH ROW - EXECUTE FUNCTION update_data_modified_column(); - - RAISE NOTICE 'created exchange table and trigger'; - ELSE - RAISE NOTICE 'exchange table already exists'; - END IF; - - IF NOT EXISTS (SELECT 1 FROM information_schema.tables WHERE table_name = 'exchange_name') THEN - CREATE TABLE exchange_name ( - id UUID DEFAULT gen_random_uuid_v7() PRIMARY KEY NOT NULL, - exchange_id UUID NOT NULL, - name VARCHAR 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_name_updated_at - BEFORE UPDATE ON "exchange_name" - FOR EACH ROW - EXECUTE FUNCTION update_data_modified_column(); - - RAISE NOTICE 'created name table and trigger'; - ELSE - RAISE NOTICE 'name table already exists'; - END IF; - - IF NOT EXISTS (SELECT 1 FROM information_schema.tables WHERE table_name = 'exchange_code') THEN - CREATE TABLE exchange_code ( - id UUID DEFAULT gen_random_uuid_v7() PRIMARY KEY NOT NULL, - exchange_id UUID NOT NULL, - code VARCHAR 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_code_updated_at - BEFORE UPDATE ON "exchange_code" - FOR EACH ROW - EXECUTE FUNCTION update_data_modified_column(); - - RAISE NOTICE 'created exchange_code table and trigger'; - ELSE - RAISE NOTICE 'exchange_code table already exists'; - END IF; -END $$; - -DO $$ -DECLARE - view_exists BOOLEAN; -BEGIN - -- 检查视图是否已存在 - SELECT EXISTS ( - SELECT 1 FROM information_schema.views - WHERE table_name = 'exchange_info_view' - ) INTO view_exists; - - -- 创建或更新视图 - CREATE OR REPLACE VIEW exchange_info_view AS - SELECT - u.id AS exchange_id, - n.name AS name, - c.code AS code, - u.deleted AS deleted - FROM - exchange u - JOIN - exchange_name n ON u.id = n.exchange_id - JOIN - exchange_code c ON u.id = c.exchange_id - WHERE - u.deleted = FALSE; - - -- 根据视图是否已存在输出不同提示 - IF view_exists THEN - RAISE NOTICE '视图 exchange_info_view 已更新'; - ELSE - RAISE NOTICE '视图 exchange_info_view 已创建'; - END IF; -EXCEPTION - WHEN OTHERS THEN - RAISE NOTICE '处理视图时发生错误: %', SQLERRM; -END $$;