【问题标题】:how to drop columns in PostgreSQL if column begins with a specific pattern如果列以特定模式开头,如何在 PostgreSQL 中删除列
【发布时间】:2019-06-11 03:23:58
【问题描述】:

如果列名以特定模式开头,则删除 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%'

【问题讨论】:

    标签: postgresql ddl


    【解决方案1】:

    您可以使用信息架构来确定所有表和列:

    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

    如果这是一个循环任务,你可以根据上面的查询编写一个存储函数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-25
      • 2023-01-19
      • 1970-01-01
      • 2018-03-31
      • 1970-01-01
      • 2017-03-21
      • 2017-10-04
      • 2021-12-26
      相关资源
      最近更新 更多