Cosa significa "Lunghezza totale delle colonne nel vincolo è troppo lungo" in Informix?

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

  •  05-07-2019
  •  | 
  •  

Domanda

Ottengo che la lunghezza totale delle colonne nel vincolo sia troppo lunga. errore dal seguente

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.
È stato utile?

Soluzione

Il tuo vincolo chiave primaria è 785 byte (255 + 20 + 255 + 255). Se aumenti le dimensioni della pagina del tuo database a 4K, dovrebbe funzionare a malapena. Dovresti anche riconsiderare se hai bisogno che le tue colonne siano larghe quanto le stai definendo.

Ho trovato un gruppo di discussione in cui un ingegnere, Radhika Gadde, descrive che la dimensione massima dell'indice è correlata alla dimensione della pagina. Dice:

quale errore viene visualizzato durante la creazione di tabelle. La lunghezza massima della chiave indice può essere calcolata come segue:

[(PAGESIZE -93) / 5] -1

come per 2k lo è [(2048-93) / 5] -1 = [1955/5] -1 = 391-1 = 390

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

Altri suggerimenti

La risposta sopra è completa. Ma ho pensato di aggiungere alcuni link utili nel caso qualcuno corre di nuovo a questo problema. Il formato delle pagine su Informix dipende dal sistema operativo. Sulla mia recente esperienza, ho scoperto che è 4K su Win 2008, OSX - Lion e 2K su SUSE EL4. Puoi trovare le dimensioni della pagina usando 'onstat -D'.

Ho scritto http: // sumedha. blogspot.com/2013/03/how-to-increase-informix-page-size.html con questa esperienza. Anche il seguente collegamento alla documentazione di IBM è molto utile.

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top