1

制約内の列の合計の長さが長すぎます。以下のエラー

sql] Failed to execute:   CREATE TABLE GTW_WORKFLOW_MON ( WORKFLOW_NAME VARCHAR(255) NOT
NULL, WORKFLOW_LOADED NUMERIC(20) NOT NULL, ACTIVITY_NAME VARCHAR(255) NOT NULL, FLAGS    
INTEGER NOT NULL, MONITOR_NAME VARCHAR(255) NOT NULL, CLASSNAME VARCHAR(255) NOT NULL, S

TR0 VARCHAR(255), STR1 VARCHAR(255), STR2 VARCHAR(255), NUM0 VARCHAR(255), NUM1 
VARCHAR(255), NUM2 VARCHAR(255), DATE0 VARCHAR(255), DATE1 VARCHAR(255), DATE2 
VARCHAR(255), PRIMARY KEY (WORKFLOW_NAME,WORKFLOW_LOADED,ACTIVITY_NAME,MONITOR_NAME) )

  [sql] java.sql.SQLException: Total length of columns in constraint is too long.
4

2 に答える 2

3

主キーの制約は 785 バイト (255+20+255+255) です。データベースのページ サイズを 4K に増やしても、かろうじて動作するはずです。列を定義しているのと同じ幅にする必要があるかどうかも再検討する必要があります。

エンジニアの Radhika Gadde が、インデックスの最大サイズはページ サイズに関連していると説明しているディスカッション グループを見つけました。彼は言い​​ます:

テーブルの作成中に発生するエラー。インデックス キーの最大長は、次のように計算できます。

[(ページサイズ -93)/5] -1

2k のように [( 2048-93)/5] -1 =[1955/5] -1 =391-1=390

PAGESIZE が 4K の場合、[(4096-93)/5] -1 =4003/5-1=800-1 =799

于 2008-10-05T18:16:16.243 に答える
0

上記の答えは完了です。しかし、誰かがこの問題に再び遭遇した場合に備えて、いくつかの役立つリンクを追加することを考えました。Informixのページサイズはオペレーティングシステムによって異なります。最近の経験では、Win 2008では4K、OSX-Lion、SUSEEL4では2Kであることがわかりました。'onstat -D'を使用すると、ページサイズを確認できます。

私はこの経験でhttp://sumedha.blogspot.com/2013/03/how-to-increase-informix-page-size.htmlを書きました。IBMからのドキュメントリンクをたどることも非常に役立ちます。

http://publib.boulder.ibm.com/infocenter/idshelp/v115/index.jsp?topic=%2Fcom.ibm.admin.doc%2Fids_admin_0564.htm

于 2013-03-11T05:36:48.870 に答える