【发布时间】:2023-01-20 21:00:47
【问题描述】:
我正在尝试回滚在 Postgres 中对这个名为 group_type 的枚举所做的添加,该添加是对我的表组中名为 type 的列所做的。
在我跑过的 Postgres 中,
ALTER TYPE group_type RENAME TO group_type_old;
CREATE TYPE group_type AS ENUM ('public', 'private');
ALTER TABLE groups ALTER COLUMN type DROP DEFAULT;
ALTER TABLE groups ALTER COLUMN "type" TYPE group_type USING "type"::text::group_type;
我在最后一条语句中收到以下错误,
Query 1 ERROR: ERROR: operator does not exist: text = group_type_old
HINT: No operator matches the given name and argument types. You might need to add explicit type casts.
知道我最后的陈述有什么问题吗?
【问题讨论】:
-
如果您没有走上非规范化道路,您可以使用简单的 DELETE 语句解决该问题。
-
哪一部分是反规范化或重复数据?在我开始使用这个数据库之前,该列被命名为“类型”,这也是一个关键字。这可能是问题的一部分吗?
-
使用枚举是去规范化
-
什么版本的 Postgres?它是 Postgres 的社区版本还是 AWS 的分支?你在什么客户端运行代码?添加答案作为问题的更新。
-
它是使用 12.3 的 Postgres 本地版本,通过 Elixir 应用程序和使用 TablePlus 应用程序运行迁移时会遇到相同的错误。
标签: postgresql enums