postgresql 无法将表重命名为与postgres中的类型相同的名称

rqmkfv5c  于 2023-06-22  发布在  PostgreSQL
关注(0)|答案(2)|浏览(202)

我不能执行sql查询,必须将表重命名为与已经存在的类型相同的名称。我没有发现任何规则或评论关于相同的名称为不同的东西在postgres。

CREATE TYPE ratings.processed_sport_bet AS ENUM ('sport_bet_created', 'sport_bet_resulted');

ALTER TABLE ratings.processed_sport_bet_resulted RENAME TO processed_sport_bet;

获取错误

[42710] ERROR: type "processed_sport_bet" already exists
disho6za

disho6za1#

当创建一个表时,PostgreSQL会自动为表的行结构创建一个类型,并使用与表相同的名称。重命名表时,关联类型也会重命名。如果另一个类型已经具有该名称,则会引发异常。

7qhs6swi

7qhs6swi2#

CREATETABLE还自动创建一个数据类型,该数据类型表示与表的一行相对应的复合类型。因此,表不能与同一架构中的任何现有数据类型同名。供参考:https://www.postgresql.org/docs/15/sql-createtable.html

相关问题