pgSQL字符限制

Die*_*uzi 10 postgresql

在完全脱离mySQL后,我对pgSQL还是比较新的.

我试图找到pgSQL可能有或没有的字符限制,如果有的话.具体来说,我很好奇以下是否有字符限制?

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

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

我目前正在使用pgSQL 9.3.1

a_h*_*ame 12

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

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

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

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

我不知道密码有任何长度限制(虽然我确定有一个).

  • `psql`命令行工具将密码截断为"100"字节,并且不能使用长于此的密码,尽管服务器会接受它们. (2认同)
  • 准确地说是 99 个字符!我使用了 100 个字符的密码,并花了一整天的时间寻找它不起作用的原因。对于其他遇到此问题的人来说,有两个细节:可以手动输入长密码,但从 envar/.pgpass 加载时会中断,而且看起来这不仅是 psql,而且还有 libpq(或者至少在节点 pq 库中会发生这种情况,我认为这是基于 libpq 的) (2认同)