【问题标题】:how to change Postgres Table Field name limit?如何更改 Postgres 表字段名称限制?
【发布时间】:2011-06-10 22:13:40
【问题描述】:

我想创建一个字段名称为 100 个字符的表,但 postgres 的字符数限制为 64,那么如何将该限​​制更改为 100?

示例: 创建表测试 ( 患者名字姓氏SSNPolicyInsuraceTicketDetailEMRquestionEMR varchar(10) )

由于名称超过 64 个字符,此表创建失败

【问题讨论】:

  • 我不想成为需要输入 100 个字符长的列名的编码员。 :-)
  • @Denis:众所周知,我会从 pgAdminIII 的 SQL 页面复制更短的列名。更少的错别字。

标签: postgresql


【解决方案1】:

实际上name的限制等于NAMEDATALEN - 1字节(不一定是字符),NAMEDATALEN的默认值为64。

NAMEDATALEN 在编译时确定(在src/include/pg_config_manual.h 中)。您必须使用新的 NAMEDATALEN 限制重新编译 PostgreSQL 才能使其工作。

但是,请考虑设计和与具有标准 63 字节限制的其他服务器的兼容性。使用这么长的名称并不常见。

【讨论】:

    【解决方案2】:

    这是因为 pg_catalog 中使用了special name type(见表 8.5)。它不会接受超过 63 个字节(加上终止符)的任何内容。没有解决方法。

    【讨论】:

    • PostgreSQL 是开源的。对于开源软件,总是有一种解决方法。但这通常不是一件令人愉快的事情。 :-)
    • 是的,我知道,但我怀疑 OP 会弄脏他的手。 ;-)
    • 另外,如 cmets 中链接的其他线程中所述,63 个字符足够长以接受“insanely_stupid_and_totally_impractical_table_or_function_name0”:-D
    • 除非您关心列的命名空间,否则data_management_program_unlist_undiscovered_venue_movie_even‌​ts_unlisted_at 太长了。
    猜你喜欢
    • 2010-11-09
    • 1970-01-01
    • 2015-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-06
    • 2012-06-09
    • 2019-08-10
    相关资源
    最近更新 更多