O que significa “Comprimento total de colunas na restrição é demasiado longo” err significa em Informix?

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

  •  05-07-2019
  •  | 
  •  

Pergunta

Eu obter o comprimento total de colunas na restrição é muito longo. de erro da seguinte

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.
Foi útil?

Solução

Seu restrição de chave primária é de 785 bytes (255 + 20 + 255 + 255). Se você aumentar o tamanho da página do banco de dados para 4K ele deve funcionar, mal. Você também deve reconsiderar se você precisa de suas colunas para ser tão grande como você está definindo-los.

Eu encontrei um grupo de discussão, onde um engenheiro, Radhika Gadde, descreve que o tamanho máximo do índice está relacionado ao tamanho da página. Ele diz:

que o erro que você está recebendo, enquanto criação de tabelas. comprimento da chave Índice máximo pode ser calculado da seguinte forma:

[(PAGESIZE -93) / 5] -1

como para 2k é [(2048-93) / 5] = -1 [1955/5] -1 = 391-1 = 390

Se PAGESIZE é 4K é [(4096-93) / 5] -1 = 4003 / 01/05 = 800-1 = 799

Outras dicas

Acima de resposta é completa. Mas pensou em acrescentar alguns links úteis no caso de alguém corre para esta questão novamente. Pagesize em Informix depende do sistema operacional. Na minha recente experiência, descobri que é 4K no Win 2008, OSX - Leão e 2K no SUSE EL4. Você pode encontrar o tamanho da página usando 'onstat -d'.

Eu escrevi http: // Sumedha. blogspot.com/2013/03/how-to-increase-informix-page-size.html com esta experiência. Após link da documentação da IBM também é muito útil.

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top