首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在sqlalchemy的数据类型中,Varchar和String有什么区别?

在sqlalchemy的数据类型中,Varchar和String有什么区别?
EN

Stack Overflow用户
提问于 2016-12-14 06:27:10
回答 2查看 34.9K关注 0票数 10

我过去经常使用来处理动态字符串长度的文本字符串。最近,我看到人们还使用带有长度的字符串来定义它。

他们之间有什么区别?哪一种更适合使用?

EN

回答 2

Stack Overflow用户

发布于 2016-12-14 06:55:48

据我所知,

  • 如果希望具有长度约束,请使用varchar
  • 如果不想限制文本的长度,请使用字符串

当在CREATE语句中使用字符串类型时,通常需要长度字段,因为大多数数据库中VARCHAR需要长度。 参数 length -可选的,用于DDL和CAST表达式的列的长度。如果不发出CREATE,可以安全地省略。在DDL中使用某些数据库可能需要一个长度,如果没有长度的VARCHAR包含,则在发出CREATE时会引发异常。该值是否解释为字节或字符是特定于数据库的。 SQLAlchemy文档

票数 9
EN

Stack Overflow用户

发布于 2022-09-03 11:10:45

String更易于移植,因为它是一个通用的SQLAlchemy类型。

对于大多数后端,Python中的String列定义将映射到后端的VARCHAR类型,但如果目标后端使用其他类型,则将使用该类型。

因此

代码语言:javascript
运行
复制
col = Column(String(1))

将在任何RDBMS上工作。

代码语言:javascript
运行
复制
col = Column(VARCHAR(1))

只适用于提供实际VARCHAR类型的关系数据库管理系统。

有关更多讨论,请参见类型层次文档。

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

https://stackoverflow.com/questions/41136136

复制
相关文章

相似问题

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