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

ich*_*lau 4 python sqlalchemy sqldatatypes

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

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

Mik*_*hoi 6

据我所知,

  • 如果你想有一个长度约束使用varchar

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

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

参数

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

SQLAlchemy 文档

  • 但是 String 也像 Varchar 一样接受长度限制。什么时候用String,什么时候用Varchar? (2认同)