【问题标题】:pgSQL Character LimitationspgSQL 字符限制
【发布时间】:2013-10-30 05:06:44
【问题描述】:

在完全脱离 mySQL 之后,我对 pgSQL 还是比较陌生。

我试图找出 pgSQL 可能有也可能没有的字符限制(如果有的话)。具体我很好奇以下是否有字数限制?

  1. 数据库名称长度(mySQL 为 64 个字符)
  2. 用户名长度(mySQL 为 16 个字符)
  3. 密码长度

我一直在搜索 Google,我已经阅读了 pgSQL 常见问题解答,以及一些随机的其他帖子,但我没有找到任何一个可靠的答案。也许 pgSQL 不像 mySQL 那样有这些限制。如果有人能对此有所了解,那就太好了!

我目前正在使用 pgSQL 9.3.1

【问题讨论】:

标签: postgresql


【解决方案1】:

任何标识符的长度限制为63个字符:

http://www.postgresql.org/docs/current/static/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS

默认情况下,NAMEDATALEN 为 64,因此最大标识符长度为 63 个字节

由于用户名和数据库名称是标识符,因此该限制应适用于它们。

我不知道密码有任何长度限制(尽管我确定有一个)。

【讨论】:

  • 我相信密码是散列的,所以我怀疑任何长度限制都适用于它们。
  • 是的,我认为不必担心密码长度,但我把它扔在那里以防万一。
  • psql 命令行工具将密码截断为 100 字节,并且不能使用超过此长度的密码,尽管服务器会接受它们。
  • 准确地说是 99 个字符!我使用了一个 100 个字符的密码,并花了一整天的时间追查为什么它不起作用。遇到此问题的其他任何人的两个细节:可以手动输入长密码,但从 envar/.pgpass 加载时会中断,而且看起来这不仅是 psql 也是 libpq (或者至少它发生在 node pq 库中,我认为是基于 libpq)
猜你喜欢
  • 1970-01-01
  • 2016-05-29
  • 1970-01-01
  • 1970-01-01
  • 2015-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多