Frage

Wir haben zwei Installationen von DB2.

Wenn ein Fremdschlüssel mit einem langen Namen zu definieren, es funktioniert gut auf eine Instanz, nicht aber auf der anderen Seite (wir bekommen eine SQL0107N Name too long - max length is 18).

Was dieses unterschiedliche Verhalten verursacht? Gibt es einen Parameter, den wir ändern können, oder ist es versionsabhängig?

War es hilfreich?

Lösung

scheint diese Version abhängig. nach http://ptgmedia.pearsoncmg.com/images/0672326132/downloads/ appd.pdf und http://publib.boulder.ibm.com/infocenter/db2luw/v9/index.jsp?topic=/com.ibm.db2.udb.admin.doc/ doc / r0001029.htm , die Grenzen für Verweisbeschränkung Namen für die 7, 8 und 9 Version von DB2 sind wie folgt:

v7  8 bytes 
v8  128 bytes
v9  18 bytes

Diese Grenzen können nicht geändert werden. so zu den restriktivsten Fall Befolgend kann Ihnen helfen, Anwendungsprogramme zu entwickeln, die leicht zu transportieren sind.

Andere Tipps

Werfen Sie einen Blick auf folgenden Link:

http://www.ibm.com/support/knowledgecenter/SSEPGG_9.7.0/com.ibm.db2.luw.sql.ref.doc/doc/r0001029.html?lang=en

Ich sehe, dass Constraintname 128 sein können und wir verwenden Version 9.7 für LUW. So werden die 18 Bytes von v9 ist nicht korrekt. Und ich habe in der Lage einen Fremdschlüssel in der Datenbank mit einer effektiven Länge von 19 Bytes für seinen Namen zu erstellen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top