-- $Id: 2.95_guez_pdm_charge_type_pzabwmiv.upd 61535 2024-01-25 08:18:08Z rathje $ -- $HeadURL: svn://slssvn/TDS/branches/product/devel/trunk/Lts/Tools/DBUpdate/updates/guez/2.95_guez_pdm_charge_type_pzabwmiv.upd $ -- $Author: rathje $ ---------------------------------------------------------------------------------- -- INFO: [E01562-59] New Tables nom_notification/nom_address -- PROJECT: ADLER -- DATE: 2025-06-27 -- VERSION: 2.120 ---------------------------------------------------------------------------------- -- GLOBAL: NOM; BEGIN; ALTER TABLE IF EXISTS address_type DROP CONSTRAINT IF EXISTS PK_address_type_id CASCADE; ALTER TABLE IF EXISTS nom_address DROP CONSTRAINT IF EXISTS PK_nom_address_id CASCADE; ALTER TABLE IF EXISTS nom_address DROP CONSTRAINT IF EXISTS FK_nom_address_notification_id_nom_notification_id CASCADE; ALTER TABLE IF EXISTS nom_address DROP CONSTRAINT IF EXISTS FK_nom_address_address_type_id_address_type_id CASCADE; ALTER TABLE IF EXISTS nom_notification DROP CONSTRAINT IF EXISTS PK_nom_notification_id CASCADE; ALTER TABLE IF EXISTS nom_notification DROP CONSTRAINT IF EXISTS FK_nom_notification_priority_id_priority_id CASCADE; ALTER TABLE IF EXISTS nom_notification DROP CONSTRAINT IF EXISTS FK_nom_notification_processed_priority_priority_id CASCADE; ALTER TABLE IF EXISTS priority DROP CONSTRAINT IF EXISTS PK_priority_id CASCADE; DROP TABLE IF EXISTS address_type CASCADE; DROP TABLE IF EXISTS nom_address CASCADE; DROP TABLE IF EXISTS nom_notification CASCADE; DROP TABLE IF EXISTS priority CASCADE; -- Create tables CREATE TABLE IF NOT EXISTS address_type ( id integer DEFAULT nextval(( 'nom.address_type_id_seq'::text)::regclass), name text ); CREATE TABLE IF NOT EXISTS nom_address ( id integer DEFAULT nextval(( 'nom.nom_address_id_seq'::text)::regclass), address_type_id integer, address_id integer, name text, address_sub_id integer, address_sub_sub_id integer, is_read boolean, notification_id integer, is_sender boolean ); CREATE TABLE IF NOT EXISTS nom_notification ( id integer DEFAULT nextval(( 'nom.nom_notification_id_seq'::text)::regclass), content text, exercise_id integer, expiry_time bigint, priority_id integer, processed integer, processed_priority integer, process_time bigint, time_stamp bigint, title text ); CREATE TABLE IF NOT EXISTS priority ( id integer DEFAULT nextval(( 'nom.priority_id_seq'::text)::regclass), name text ); CREATE SEQUENCE IF NOT EXISTS address_type_id_seq INCREMENT 1 START 1 MINVALUE 1; CREATE SEQUENCE IF NOT EXISTS nom_address_id_seq INCREMENT 1 START 1 MINVALUE 1; CREATE SEQUENCE IF NOT EXISTS nom_notification_id_seq INCREMENT 1 START 1 MINVALUE 1; CREATE SEQUENCE IF NOT EXISTS priority_id_seq INCREMENT 1 START 1 MINVALUE 1; -- Create primary keys ALTER TABLE IF EXISTS address_type ADD CONSTRAINT PK_address_type_id PRIMARY KEY (id); ALTER TABLE IF EXISTS nom_address ADD CONSTRAINT PK_nom_address_id PRIMARY KEY (id); ALTER TABLE IF EXISTS nom_notification ADD CONSTRAINT PK_nom_notification_id PRIMARY KEY (id); ALTER TABLE IF EXISTS priority ADD CONSTRAINT PK_priority_id PRIMARY KEY (id); -- Create foreign keys ALTER TABLE nom_address ADD CONSTRAINT FK_nom_address_notification_id_nom_notification_id FOREIGN KEY (notification_id) REFERENCES nom_notification (id) ON DELETE CASCADE ON UPDATE CASCADE; ALTER TABLE nom_address ADD CONSTRAINT FK_nom_address_address_type_id_address_type_id FOREIGN KEY (address_type_id) REFERENCES address_type (id) ON DELETE CASCADE ON UPDATE CASCADE; ALTER TABLE nom_notification ADD CONSTRAINT FK_nom_notification_priority_id_priority_id FOREIGN KEY (priority_id) REFERENCES priority (id) ON DELETE CASCADE ON UPDATE CASCADE; ALTER TABLE nom_notification ADD CONSTRAINT FK_nom_notification_processed_priority_priority_id FOREIGN KEY (processed_priority) REFERENCES priority (id) ON DELETE CASCADE ON UPDATE CASCADE; -- Inserts for static data i.e. enums INSERT INTO priority (id, name) VALUES (1, 'Highest'); INSERT INTO priority (id, name) VALUES (2, 'High'); INSERT INTO priority (id, name) VALUES (3, 'Normal'); INSERT INTO priority (id, name) VALUES (4, 'Low'); INSERT INTO address_type (id, name) VALUES (0, 'Service'); INSERT INTO address_type (id, name) VALUES (1, 'Operator'); INSERT INTO address_type (id, name) VALUES (2, 'Workstation'); INSERT INTO address_type (id, name) VALUES (3, 'Participant'); COMMIT; -- EXERCISE: NONE; BEGIN; COMMIT;