"제약 조건에서 열의 총 길이가 너무 길다"는 정보는 무엇입니까?

StackOverflow https://stackoverflow.com/questions/172156

  •  05-07-2019
  •  | 
  •  

문제

제약 조건에서 열의 총 길이가 너무 깁니다. 다음에서 에로

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.
도움이 되었습니까?

해결책

주요 키 제약 조건은 785 바이트 (255+20+255+255)입니다. 데이터베이스 페이지 크기를 4K로 늘리면 거의 작동하지 않습니다. 열을 정의하는 것만 큼 넓어야하는 경우 재고해야합니다.

엔지니어 인 Radhika Gadde가있는 토론 그룹을 찾았습니다. 설명합니다 최대 인덱스 크기는 페이지 크기와 관련이 있습니다. 그는 말한다 :

테이블 생성 중에 얻는 오류. 최대 인덱스 키 길이는 다음과 같이 계산할 수 있습니다.

(Pagesize -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입니다.

다른 팁

위의 답변이 완료되었습니다. 그러나 누군가 가이 문제를 다시 실행할 경우 유용한 링크를 추가 할 생각을했습니다. Informix의 Pagesize는 운영 체제에 따라 다릅니다. 최근 경험에 따르면, 나는 Win 2008, OSX -Lion 및 Suse El4에서 2K에서 4K라는 것을 알았습니다. '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

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top