¿Qué significa "Longitud total de las columnas en la restricción demasiado larga" equivocada en Informix?

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

  •  05-07-2019
  •  | 
  •  

Pregunta

Obtengo que la longitud total de las columnas en restricción es demasiado larga. error de lo siguiente

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

Solución

Su restricción de clave principal es 785 bytes (255 + 20 + 255 + 255). Si aumenta el tamaño de la página de su base de datos a 4K, debería funcionar, apenas. También debe reconsiderar si necesita que sus columnas sean tan anchas como las está definiendo.

Encontré un grupo de discusión donde un ingeniero, Radhika Gadde, describe que el tamaño máximo del índice está relacionado con el tamaño de la página. Él dice:

el error que está obteniendo al crear tablas. La longitud máxima de la clave del índice se puede calcular de la siguiente manera:

[(PAGESIZE -93) / 5] -1

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

si PAGESIZE es 4K es [(4096-93) / 5] -1 = 4003 / 5-1 = 800-1 = 799

Otros consejos

La respuesta anterior está completa. Pero pensé en agregar algunos enlaces útiles en caso de que alguien vuelva a este problema. El tamaño de página en Informix depende del sistema operativo. En mi experiencia reciente, encontré que es 4K en Win 2008, OSX - Lion y 2K en SUSE EL4. Puede encontrar el tamaño de página usando 'onstat -D'.

Escribí http: // sumedha. blogspot.com/2013/03/how-to-increase-informix-page-size.html con esta experiencia. Seguir el enlace de documentación de IBM también es muy útil.

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top