Some global sql queries - focustm/focust GitHub Wiki
See:
Rename table
ALTER TABLE old_table_name RENAME TO new_table_name;
Rename index
ALTER INDEX old_index_name RENAME TO new_index_name;
Drop NOT NULL statement
ALTER TABLE employees_apps_times
ALTER COLUMN app_full_id DROP NOT NULL;
Rename columns
ALTER TABLE app_full RENAME COLUMN app_image_path TO image_path;
ALTER TABLE app_full RENAME COLUMN app_main_wnd_text TO main_wnd_text;
ALTER TABLE app_full RENAME COLUMN app_url TO url;
Deallocate all prepared queries
DEALLOCATE ALL;
Remove a trigger from the DB
DROP TRIGGER trigger_on_before_insert_employee_times ON employee_times;
list all triggers in the DB
SELECT
n.nspname AS schema_name,
c.relname AS table_name,
t.tgname AS trigger_name,
CASE t.tgtype::integer & 66
WHEN 2 THEN 'BEFORE'
WHEN 64 THEN 'INSTEAD OF'
ELSE 'AFTER'
END as trigger_timing,
CASE
WHEN (t.tgtype::integer & 4) = 4 THEN 'INSERT'
WHEN (t.tgtype::integer & 8) = 8 THEN 'DELETE'
WHEN (t.tgtype::integer & 16) = 16 THEN 'UPDATE'
END as trigger_event,
pg_get_triggerdef(t.oid) as trigger_definition
FROM pg_trigger t
JOIN pg_class c ON c.oid = t.tgrelid
JOIN pg_namespace n ON n.oid = c.relnamespace
WHERE t.tgenabled = 'O' AND NOT t.tgisinternal;
Remove a function from the DB
DROP FUNCTION IF EXISTS check_employee_time_insertion();
or
DROP FUNCTION any_other_function_name(argument_type [, ...]); -- IF EXISTS can be skipped, arguments should be provided
List all functions in the DB
SELECT
n.nspname AS schema_name,
p.proname AS function_name,
pg_get_function_arguments(p.oid) AS function_arguments,
pg_get_function_result(p.oid) AS result_type
FROM pg_proc p
JOIN pg_namespace n ON p.pronamespace = n.oid
WHERE n.nspname NOT IN ('pg_catalog', 'information_schema')
AND p.prokind = 'f'
ORDER BY n.nspname, p.proname;
or
SELECT
n.nspname AS schema_name,
p.proname AS function_name,
pg_get_function_arguments(p.oid) AS function_arguments,
pg_get_function_result(p.oid) AS result_type,
pg_get_functiondef(p.oid) AS source_code -- Retrieves the function definition/source code
FROM pg_proc p
JOIN pg_namespace n ON p.pronamespace = n.oid
WHERE n.nspname NOT IN ('pg_catalog', 'information_schema')
AND p.prokind = 'f'
ORDER BY n.nspname, p.proname;
Display the content of the interested function
SELECT pg_get_functiondef(f.oid)
FROM pg_proc f
JOIN pg_namespace n ON (f.pronamespace = n.oid)
WHERE n.nspname = 'public' -- Replace 'schema_name' with your schema name
AND f.proname = 'check_employee_time_insertion'; -- Replace 'function_name' with your function name
Example: Dropping Multiple Columns from a table
ALTER TABLE table_name DROP COLUMN column_name1, DROP COLUMN column_name2;
Adding column to the existing table
ALTER TABLE table_name ADD COLUMN column_name data_type;