add
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
|
||||
DO $$
|
||||
BEGIN
|
||||
-- 创建主表 variety
|
||||
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,
|
||||
@@ -20,6 +21,7 @@ BEGIN
|
||||
RAISE NOTICE 'variety table already exists';
|
||||
END IF;
|
||||
|
||||
-- 创建子表 variety_name 并添加外键
|
||||
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,
|
||||
@@ -27,18 +29,25 @@ BEGIN
|
||||
name 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
|
||||
updated_at TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
-- 外键约束,关联variety主表
|
||||
CONSTRAINT fk_variety_name_variety
|
||||
FOREIGN KEY (variety_id)
|
||||
REFERENCES variety(id)
|
||||
ON DELETE CASCADE -- 主表记录删除时,子表关联记录也删除
|
||||
ON UPDATE CASCADE -- 主表id更新时,子表关联id同步更新
|
||||
);
|
||||
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';
|
||||
RAISE NOTICE 'created variety_name table, trigger and foreign key';
|
||||
ELSE
|
||||
RAISE NOTICE 'variety_name table already exists';
|
||||
END IF;
|
||||
|
||||
-- 创建子表 variety_code 并添加外键
|
||||
IF NOT EXISTS (SELECT 1 FROM information_schema.tables WHERE table_name = 'variety_code') THEN
|
||||
CREATE TABLE variety_code (
|
||||
id UUID DEFAULT gen_random_uuid_v7() PRIMARY KEY NOT NULL,
|
||||
@@ -46,18 +55,25 @@ BEGIN
|
||||
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
|
||||
updated_at TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
-- 外键约束,关联variety主表
|
||||
CONSTRAINT fk_variety_code_variety
|
||||
FOREIGN KEY (variety_id)
|
||||
REFERENCES variety(id)
|
||||
ON DELETE CASCADE
|
||||
ON UPDATE CASCADE
|
||||
);
|
||||
CREATE TRIGGER update_variety_code_updated_at
|
||||
BEFORE UPDATE ON "variety_code"
|
||||
FOR EACH ROW
|
||||
EXECUTE FUNCTION update_data_modified_column();
|
||||
|
||||
RAISE NOTICE 'created variety_code table and trigger';
|
||||
RAISE NOTICE 'created variety_code table, trigger and foreign key';
|
||||
ELSE
|
||||
RAISE NOTICE 'variety_code table already exists';
|
||||
END IF;
|
||||
|
||||
-- 创建子表 variety_tick 并添加外键
|
||||
IF NOT EXISTS (SELECT 1 FROM information_schema.tables WHERE table_name = 'variety_tick') THEN
|
||||
CREATE TABLE variety_tick (
|
||||
id UUID DEFAULT gen_random_uuid_v7() PRIMARY KEY NOT NULL,
|
||||
@@ -65,18 +81,25 @@ BEGIN
|
||||
tick 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
|
||||
updated_at TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
-- 外键约束,关联variety主表
|
||||
CONSTRAINT fk_variety_tick_variety
|
||||
FOREIGN KEY (variety_id)
|
||||
REFERENCES variety(id)
|
||||
ON DELETE CASCADE
|
||||
ON UPDATE CASCADE
|
||||
);
|
||||
CREATE TRIGGER update_variety_tick_updated_at
|
||||
BEFORE UPDATE ON "variety_tick"
|
||||
FOR EACH ROW
|
||||
EXECUTE FUNCTION update_data_modified_column();
|
||||
|
||||
RAISE NOTICE 'created variety_tick table and trigger';
|
||||
RAISE NOTICE 'created variety_tick table, trigger and foreign key';
|
||||
ELSE
|
||||
RAISE NOTICE 'variety_tick table already exists';
|
||||
END IF;
|
||||
|
||||
-- 创建子表 variety_tick_price 并添加外键
|
||||
IF NOT EXISTS (SELECT 1 FROM information_schema.tables WHERE table_name = 'variety_tick_price') THEN
|
||||
CREATE TABLE variety_tick_price (
|
||||
id UUID DEFAULT gen_random_uuid_v7() PRIMARY KEY NOT NULL,
|
||||
@@ -84,14 +107,20 @@ BEGIN
|
||||
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
|
||||
updated_at TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
-- 外键约束,关联variety主表
|
||||
CONSTRAINT fk_variety_tick_price_variety
|
||||
FOREIGN KEY (variety_id)
|
||||
REFERENCES variety(id)
|
||||
ON DELETE CASCADE
|
||||
ON UPDATE CASCADE
|
||||
);
|
||||
CREATE TRIGGER update_variety_tick_price_updated_at
|
||||
BEFORE UPDATE ON "variety_tick_price"
|
||||
FOR EACH ROW
|
||||
EXECUTE FUNCTION update_data_modified_column();
|
||||
|
||||
RAISE NOTICE 'created variety_tick_price table and trigger';
|
||||
RAISE NOTICE 'created variety_tick_price table, trigger and foreign key';
|
||||
ELSE
|
||||
RAISE NOTICE 'variety_tick_price table already exists';
|
||||
END IF;
|
||||
|
||||
Reference in New Issue
Block a user