Mit dieser Anweisung erstellen Sie eine Publikation. In MobiLink kennzeichnet eine Publikation synchronisierte Daten in einer entfernten SQL Anywhere-Datenbank. In SQL Remote kennzeichnen Publikationen Replikatdaten sowohl in konsolidierten als auch in entfernten Datenbanken.
CREATE PUBLICATION [ Eigentümer.]Publikationsname ( Artikeldefinition, ... )
Artikeldefinition : TABLE Tabellenname [ ( Spaltenname, ... ) ] [ WHERE Suchbedingung ]
CREATE PUBLICATION [ Eigentümer.]Publikationsname WITH SCRIPTED UPLOAD ( Artikeldefinition, ... )
Artikeldefinition : TABLE Tabellenname [ ( Spaltenname, ... ) ] [ USING ( [PROCEDURE ] [ Eigentümer.][Prozedurname ] FOR UPLOAD { INSERT | DELETE | UPDATE }, ... ) ]
CREATE PUBLICATION [ Eigentümer.]Publikationsname FOR DOWNLOAD ONLY ( Artikeldefinition, ... )
Artikeldefinition : TABLE Tabellenname [ ( Spaltenname, ... ) ]
CREATE PUBLICATION [ Eigentümer.]Publikationsname ( Artikeldefinition, ... )
Artikeldefinition : TABLE Tabellenname [ ( Spaltenname, ... ) ] [ WHERE Suchbedingung ] [ SUBSCRIBE BY Ausdruck ]
Artikeldefinition Publikationen werden aus Artikeln erstellt. Wenn Sie mehr als einen Artikel aufnehmen, trennen Sie die Artikeldefinitionen mit Kommata. Jeder Artikel ist eine Tabelle oder Teil einer Tabelle. Ein Artikel kann eine senkrechte Partition einer Tabelle sein (eine Teilmenge der Tabellenspalten), eine waagrechte Partition (eine auf einer WHERE-Klausel basierende Teilmenge der Tabellenzeilen) oder eine senkrechte und waagrechte Partition.
In Syntax 2, die für Publikationen verwendet wird, welche skriptgesteuerte Uploads durchführen, registriert die Artikeldefinition auch die Skripts, die für die Definition des Uploads verwendet werden. Weitere Hinweise finden Sie unter Publikationen für skriptgesteuerte Uploads erstellen.
In Syntax 3, die für reine Downloadpublikationen verwendet wird, gibt der Artikel nur die Tabellen und Spalten für den Download an.
WHERE-Klausel Die WHERE-Klausel ist eine Möglichkeit, die Teilmenge von Zeilen einer Tabelle zu definieren, die in einen Artikel aufgenommen werden soll.
In MobiLink-Anwendungen bezieht sich die WHERE-Klausel auf die im Upload enthaltenen Zeilen. (Der Download wird durch das download_cursor-Skript definiert.) In entfernten MobiLink SQL Anywhere-Datenbanken kann die WHERE-Klausel nur im Artikel enthaltene Spalten referenzieren und darf keine Unterabfragen, Variablen oder nicht-deterministische Funktionen enthalten.
SUBSCRIBE BY-Klausel In SQL Remote kann mit dieser Klausel eine Teilmenge von Zeilen einer Tabelle definiert werden, die in einen Artikel aufgenommen werden soll. Diese Klausel ermöglicht es vielen verschiedenen Subskribenten, unterschiedliche Zeilen einer Tabelle in einer einzigen Publikationsdefinition zu erhalten.
Die CREATE PUBLICATION-Anweisung erstellt eine Publikation in der Datenbank. Eine Publikation kann für einen anderen Benutzer erstellt werden, indem ein Eigentümername angegeben wird.
In MobiLink werden Publikationen in entfernten SQL Anywhere-Datenbanken benötigt, in UltraLite-Datenbanken sind sie optional. Diese Publikationen und die entsprechenden Subskriptionen bestimmen, welche Daten an den MobiLink-Server übertragen werden.
Die Optionen für eine MobiLink-Publikation können Sie mit der ADD OPTION-Klausel in der CREATE SYNCHRONIZATION SUBSCRIPTION- oder ALTER SYNCHRONIZATION SUBSCRIPTION-Anweisung einstellen.
Syntax 2 erstellt eine Publikation für skriptgesteuerte Uploads. Verwenden Sie die USING-Klausel, um die gespeicherten Prozeduren anzugeben, die Sie zur Definition des Uploads verwenden wollen. Bei jeder Tabelle können Sie bis zu drei gespeicherte Prozeduren verwenden: jeweils eine für Einfügungen, Löschungen und Aktualisierungen.
Syntax 3 erstellt eine reine Download-Publikation, die ohne Logdatei synchronisiert werden kann. Wenn reine Downloadpublikationen synchronisiert werden, können Downloadzeilen Änderungen überschreiben, die an diesen Zeilen in der entfernten Datenbank durchgeführt wurden.
In SQL Remote ist das Publizieren ein Vorgang mit zwei Möglichkeiten, da Daten sowohl in konsolidierten als auch in entfernten Datenbanken eingegeben werden können. In einer SQL Remote-Installation müssen die konsolidierte Datenbank und alle entfernten Datenbanken dieselbe Publikation definiert haben. Wenn das SQL Remote-Extraktionsprogramm von einer konsolidierten Datenbank aus ausgeführt wird, führt das System automatisch die richtige CREATE PUBLICATION-Anweisung in der entfernten Datenbank aus.
DBA-Berechtigung ist erforderlich. Erfordert exklusiven Zugriff auf alle Tabellen, die in der Anweisung referenziert werden.
Automatisches Festschreiben (Autocommit).
SQL/2003 Erweiterung des Herstellers
Mit der folgenden Anweisung werden alle Spalten und Zeilen von zwei Tabellen publiziert.
CREATE PUBLICATION pub_contact ( TABLE Contacts, TABLE Company ); |
Mit der folgenden Anweisung werden nur einige Spalten einer Tabelle publiziert.
CREATE PUBLICATION pub_customer ( TABLE Customers ( ID, CompanyName, City ) ); |
Mit der folgenden Anweisung werden nur aktive Kundenzeilen publiziert, indem eine WHERE-Klausel eingefügt wird, die den Wert in der Statuszeile der Customers-Tabelle prüft.
CREATE PUBLICATION pub_customer ( TABLE Customers ( ID, CompanyName, City, State, Status ) WHERE Status = 'active' ); |
Mit der folgenden Anweisung werden nur einige Zeilen publiziert, und zwar durch Angabe eines SUBSCRIBE BY-Werts. Diese Methode kann nur mit SQL Remote benutzt werden.
CREATE PUBLICATION pub_customer ( TABLE Customers ( ID, CompanyName, City, State ) SUBSCRIBE BY State ); |
Beim Erstellen einer SQL Remote-Subskription wird der SUBSCRIBE BY-Wert wie folgt verwendet.
CREATE SUBSCRIPTION TO pub_customer ( 'NY' ) FOR jsmith; |
Das folgende Beispiel erstellt eine MobiLink-Publikation, die skriptgesteuerte Uploads verwendet:
CREATE PUBLICATION pub WITH SCRIPTED UPLOAD ( TABLE t1 (a, b, c) USING ( PROCEDURE my.t1_ui FOR UPLOAD INSERT, PROCEDURE my.t1_ud FOR UPLOAD DELETE, PROCEDURE my.t1_uu FOR UPLOAD UPDATE ), TABLE t2 AS my_t2 USING ( PROCEDURE my.t2_ui FOR UPLOAD INSERT ) ); |
Das folgende Beispiel erstellt eine reine Downloadpublikation:
CREATE PUBLICATION p1 FOR DOWNLOAD ONLY ( TABLE t1 ); |
Kommentieren Sie diese Seite in DocCommentXchange. Senden Sie uns Feedback über diese Seite via E-Mail. |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |