2011-06-10 30 views
5

我想創建一個表,其字段名稱爲100個字符,但postgres限制的字符數爲64,因此如何將該限​​制更改爲100?如何更改Postgres表字段名稱限制?

例如: 創建表測試 ( PatientFirstnameLastNameSSNPolicyInsuraceTicketDetailEMRquestionEMR VARCHAR(10) )

作爲名稱超過64個字符

+1

我不想成爲需要輸入那個100個字符長的列名的編碼員。 :-) – 2011-06-10 14:05:35

+0

看看http://stackoverflow.com/questions/3836247/how-do-i-change-the-namedatalen-configuration-after-installing-postgresql-9-0 – 2011-06-10 14:20:25

+0

@Denis:我一直都知道從pgAdminIII的SQL頁面複製更短的列名稱。減少錯別字。 – 2011-06-10 22:48:51

回答

10

實際上名稱的限制等於NAMEDATALEN - 1字節(不一定字符),用於缺省NAMEDATALEN值是64

NAMEDATALEN是在編譯時決定(src/include/pg_config_manual.h)。您必須用新的NAMEDATALEN限制重新編譯PostgreSQL才能使其工作。

但是考慮設計和與其他標準63字節限制的服務器的兼容性。使用這種長名稱並不常見。

0

這是因爲special name type(見表8.5)的,該表創建失敗,其在pg_catalog中使用。它不會接受超過63字節(加終止符)的任何內容。沒有解決方法。

+4

PostgreSQL是開源的。 *總是*開放源碼軟件的解決方法。但它往往不是一個愉快的。 :-) – 2011-06-10 14:20:33

+0

是的,我知道,但我懷疑OP會弄髒他的手。 ;-) – 2011-06-10 14:24:34

+0

另外,正如註釋中鏈接的其他線程所指出的,63個字符的長度足以接受「insanely_stupid_and_totally_impractical_table_or_function_name0」:-D – 2011-06-10 14:26:47