sqlalchemy 的数据类型中 Varchar 和 String 有啥区别?

Posted

技术标签:

【中文标题】sqlalchemy 的数据类型中 Varchar 和 String 有啥区别?【英文标题】:What is the difference between Varchar and String in sqlalchemy's data type?sqlalchemy 的数据类型中 Varchar 和 String 有什么区别? 【发布时间】:2017-04-29 09:38:21 【问题描述】:

我曾经使用 Varchar 来处理动态字符串长度的文本字符串。最近看到有人用String加上length来定义。

它们之间有什么区别?哪个更好用?

【问题讨论】:

【参考方案1】:

据我所知,

如果你想有一个长度限制

,请使用varchar

如果您不想限制文本的长度,请使用 字符串

使用String类型时通常需要长度字段 在 CREATE TABLE 语句中,因为 VARCHAR 在大多数情况下都需要长度 数据库

参数

长度 - 可选,用于 DDL 和 CAST 表达式的列的长度。 如果不发出 CREATE TABLE,可以安全地省略。肯定 数据库可能需要在 DDL 中使用的长度,并且会引发 如果 VARCHAR 没有 包括长度。该值是否被解释为字节或 字符是特定于数据库的。

SQLAlchemy 文档

【讨论】:

但是 String 也像 Varchar 一样接受长度限制。什么时候用String,什么时候用Varchar? @ichbinblau 是的,但如上所述,长度是String可选 参数,可以安全地省略 @ichbinblau 这能回答你的问题吗??

以上是关于sqlalchemy 的数据类型中 Varchar 和 String 有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

使用 SQLALCHEMY 设置 Oracle VARCHAR2 长度 i Byte

在 SQLAlchemy 列类型和 python 数据类型之间轻松转换?

FlaskSqlalchemy 常用数据类型

sqlalchemy.exc.CompileError: (in table 'language_label', column 'name'): VARCHAR req

SQLAlchemy(二):SQLAlchemy对数据的增删改查操作属性常用数据类型详解

在 postgres 中使用 sqlalchemy 访问复合数据类型