postgresql - 在 PostgeSQL 中使用 ENUM 类型而不先定义它
问题描述
通常,要在 PostgreSQL 中的现有表中添加枚举类型的列,我们需要先使用CREATE TYPE
语句创建它。我想知道是否有一种方法或多或少像这样:
ALTER TABLE tbl ADD COLUMN new_col ENUM('foo','bar');
即,没有先定义枚举。
解决方案
你不能使用这样的快捷方式。
小心枚举类型。它们很好,但只有当你可以 100% 确定标签永远不会改变时,它们才是好的。例如,世界各县的枚举是一个坏主意。
枚举的主要缺点是您永远无法删除标签。这是因为这样做意味着更新所有使用该类型的表。
如果您不确定,请使用查找表的外键。
推荐阅读
- bootstrap-4 - 如何在模态引导程序中呈现下拉菜单
- android - 使用 androidx.hilt 设置 Android Hilt
- apache - 无法从浏览器访问 Apache 测试页面
- c# - MongoDB .NET 驱动程序映射值为 null
- json - 定义密钥对的数量然后填充它们 json
- r - 什么聚类方法会给出最大的剪影分数?
- python - 如何从另一个命令终止 discord.py 中的异步函数
- c# - 如何查询名称包含一个或多个字符串列表的项目(以转换为 SQL 的方式)?
- c++ - 是否有带边界的 strchr?
- optimization - 如何拒绝局部最小外部约束?