aonestar
.public
Tables
(current)
Columns
Constraints
Relationships
Orphan Tables
Anomalies
Routines
sp_db_create_backup_table
Parameters
Name
Type
Mode
table_name
text
IN
drop_if_exists
boolean
IN (DEFAULT true)
Definition
declare fk record; fk_name TEXT; SQL_DROP_TABLE TEXT = 'DROP TABLE IF EXISTS backup.%I'; SQL_CREATE_TABLE TEXT = 'CREATE TABLE IF NOT EXISTS backup.%I (date_ref date NOT NULL, like %I INCLUDING ALL EXCLUDING IDENTITY EXCLUDING CONSTRAINTS EXCLUDING DEFAULTS EXCLUDING GENERATED)'; --SQL_ADD_FOREIGN_KEY TEXT = 'ALTER TABLE backup.%I ADD CONSTRAINT %I %s'; BEGIN IF drop_if_exists THEN execute format(SQL_DROP_TABLE, table_name); END IF; execute format(SQL_CREATE_TABLE, table_name, table_name); -- IF NOT EXISTS(SELECT 1 FROM information_schema.TABLES t WHERE t.table_schema='backup' AND t.table_name = $1) THEN -- for fk in -- select oid, conname from pg_constraint -- where contype = 'f' and conrelid = table_name::regclass -- LOOP -- fk_name = overlay(fk.conname placing 'bak_' from position(table_name in fk.conname) for 0); -- execute format(SQL_ADD_FOREIGN_KEY, table_name, fk_name, pg_get_constraintdef(fk.oid)); -- end loop; -- END IF; end