Qu'est-ce que la & # 8220; longueur totale des colonnes dans la contrainte est trop longue & # 8221; err signifie dans Informix?

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

  •  05-07-2019
  •  | 
  •  

Question

J'obtiens que la longueur totale des colonnes dans la contrainte est trop longue. erreur de ce qui suit

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.
Était-ce utile?

La solution

Votre contrainte de clé primaire est de 785 octets (255 + 20 + 255 + 255). Si vous augmentez la taille de la page de votre base de données à 4 Ko, cela devrait fonctionner à peine. Si vous souhaitez que vos colonnes soient aussi larges que vous les définissez, vous devez également les reconsidérer.

J'ai trouvé un groupe de discussion où une ingénieure, Radhika Gadde, décrit que la taille maximale de l'index est liée à la taille de la page. Il dit:

quelle erreur vous obtenez lors de la création des tables. La longueur maximale de la clé d’index peut être calculée comme suit:

[(PAGESIZE -93) / 5] -1

comme pour 2k c'est [(2048-93) / 5] -1 = [1955/5] -1 = 391-1 = 390

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

Autres conseils

La réponse ci-dessus est terminée. Mais pensez à ajouter des liens utiles au cas où quelqu'un reviendrait sur ce problème. Pagesize sur Informix dépend du système d'exploitation. Sur mon expérience récente, j'ai trouvé que c'était 4K sur Win 2008, OSX - Lion et 2K sur SUSE EL4. Vous pouvez trouver la taille de la page en utilisant 'onstat -D'.

J'ai écrit http: // sumedha. blogspot.com/2013/03/how-to-increase-informix-page-size.html avec cette expérience. Suivre le lien vers la documentation d’IBM est également très utile.

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top