Was bedeutet „Gesamtlänge der Spalten in Constraint zu lang ist“ in Informix bedeuten err?
Frage
Ich erhalte die Gesamtlänge der Spalten in Constraint zu lang ist. Fehler aus der folgenden
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.
Lösung
Ihre Primärschlüsselbedingung ist 785 Bytes (255 + 20 + 255 + 255). Wenn Sie Ihre Datenbank-Seitengröße erhöhen 4K es funktionieren soll, kaum. Sie sollten auch überprüfen, ob Sie Ihre Spalten müssen so breit sein, wie Sie sie definieren.
ich eine Diskussionsgruppe gefunden, wo ein Ingenieur, Radhika Gadde, beschreibt , dass die maximale Indexgröße auf Seitengröße zusammenhängt. Er sagt:
, welche Fehler Sie bekommen während Erstellung von Tabellen. Maximale Index Schlüssellänge kann wie folgt berechnet werden:
[(PAGESIZE -93) / 5] -1
wie für 2k ist [(2048-93) / 5] -1 = [1955/5] -1 = 391-1 = 390
wenn PAGESIZE ist 4K es ist [(4096-93) / 5] -1 = 4003 / 5-1 = 800-1 = 799
Andere Tipps
Über Antwort ist abgeschlossen. Aber dachte einige hilfreiche Links hinzuzufügen, falls jemand wieder zu diesem Thema läuft. Seitengrße auf Informix abhängig vom Betriebssystem. Auf meinen jüngsten Erfahrungen, fand ich, dass es 4K auf Win 2008, OSX - Lion und 2K auf SUSE EL4. Sie können die Seitengröße finden von ‚onstat -D‘ verwendet wird.
Ich schrieb http: // Sumedha. blogspot.com/2013/03/how-to-increase-informix-page-size.html mit dieser Erfahrung . Folgende Dokumentation Link von IBM ist auch sehr hilfreich.