我不能执行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
2条答案
按热度按时间disho6za1#
当创建一个表时,PostgreSQL会自动为表的行结构创建一个类型,并使用与表相同的名称。重命名表时,关联类型也会重命名。如果另一个类型已经具有该名称,则会引发异常。
7qhs6swi2#
CREATETABLE还自动创建一个数据类型,该数据类型表示与表的一行相对应的复合类型。因此,表不能与同一架构中的任何现有数据类型同名。供参考:https://www.postgresql.org/docs/15/sql-createtable.html