Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (Deutsch) » SQL Remote » SQL Remote-Replikationsplanung » SQL Remote-Replikation planen und einrichten

 

Mehrfach vorhandene Primärschlüssel

Wenn alle Benutzer mit derselben Datenbank verbunden sind, kann problemlos sichergestellt werden, dass jede INSERT-Anweisung einen eindeutigen Primärschlüssel verwendet. Wenn ein Benutzer versucht, einen Primärschlüssel erneut zu verwenden, schlägt die INSERT-Anweisung fehl.

Die Situation ist in einem Replikationssystem anders, weil die Benutzer mit verschiedenen Datenbanken verbunden sind. Ein Problem kann entstehen, wenn zwei Benutzer, eine Zeile mit demselben Primärschlüssel einfügen. Beide Anweisungen sind erfolgreich, weil der Primärschlüsselwert in der jeweiligen Datenbank eindeutig ist.

Wenn diese beiden Benutzer allerdings ihre Datenbanken mit der konsolidierten Datenbank replizieren, gibt es ein Problem. Die erste Datenbank, die mit der konsolidierten Datenbank repliziert, ist erfolgreich. Die zweite Einfügung scheitert jedoch.

Primärschlüsselwerte müssen eindeutig sein

Um Primärschlüssel-Fehler zu vermeiden, müssen Sie sicherstellen, dass, wenn eine Datenbank eine Zeile einfügt, ihr Primärschlüssel garantiert eindeutig bei allen Datenbanken im System ist. Es gibt mehrere Methoden, um dieses Ziel zu erreichen, insbesondere:

  1. Die GLOBAL AUTOINCREMENT-Funktionalität von SQL Anywhere-Datenbanken für Standardwerte verwenden. Weitere Hinweise finden Sie unter Global Autoincrement-Spalten.

  2. Einen Primärschlüsselpool verwenden, um eine Liste von ungenutzten, eindeutigen Primärschlüsselwerten an jedem Standort bereitzuhalten. Weitere Hinweise finden Sie unter Primärschlüsselpools verwenden.

Diese Methoden können entweder separat oder zusammen verwendet werden, um mehrfach vorhandene Primärschlüssel zu vermeiden.

Siehe auch

Global Autoincrement-Spalten
Primärschlüsselpools verwenden