首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mysql空ENUM到postgresql ENUM

Mysql空ENUM到postgresql ENUM
EN

Stack Overflow用户
提问于 2013-08-17 16:04:50
回答 1查看 2.2K关注 0票数 2

我想将MySQL数据库转换为PostgreSQL。

在MySQL中,ENUM数据类型默认允许空字段,这似乎不适用于PostgreSQL。因此,我不能用PostgreSQL从VARCHAR转换到ENUM,因为我的数据库中有很多PgSQL不允许的空字段。

我能做什么?允许NULL并将空字段设置为NULL?在创建类型时,在PostgreSQL的ENUM中添加一个空值(类似于ENUM('A','B','C',''))?停止使用这种丑陋和不协调的ENUM数据类型(而不是对varchar使用约束,或者使用另一个表和外键)?

谢谢您:)

user1527491

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-17 16:20:24

如果您实际上希望在枚举中有空字符串值,则在创建类型时,应该将它们添加到枚举中。将空字符串接受到不显式允许空字符串的枚举中的任何数据库都是错误的,如果应用程序依赖它,那么也是错误的:)

如果它的意思是“未知”,那么使用NULL也是一个不错的选择--从纯模型的角度来看,可能是更干净的。

这可以归结为一个经典的问题,即某些数据库和系统认为null和空字符串是相同的,而它们显然是不同的值。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18290763

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档