如果列名以特定模式开头,则在PostgreSQL中删除列
CREATE TABLE public.table1
(
id bigint NOT NULL,
address character varying(500),
primaryemailid character varying(150),
trial577 character(1));
CREATE TABLE public.table2
(
id bigint NOT NULL,
address character varying(500),
salary character varying(150),
trial389 character(1));
像这样我有多个带有试验名称的表 如何删除该列名 我正在使用以下命令,但遇到错误
ALTER TABLE public.alarmconfig DROP COLUMN LIKE 'trial%'
答案 0 :(得分:0)
您可以使用信息模式确定所有表和列:
SELECT table_name, column_name FROM information_schema.columns
WHERE schema_name = 'public' AND column_name LIKE 'trial%';
您可以使用它来获取必要的语句列表:
SELECT FORMAT('ALTER TABLE public.%s DROP COLUMN %s;', table_name, column_name)
FROM information_schema.columns
WHERE schema_name = 'public' AND column_name LIKE 'trial%';
最后,您可以将这些语句复制并粘贴到psql
中。
如果这是一项定期任务,则可以根据上面的查询编写存储的函数。