Bei den folgenden Anweisungen wird davon ausgegangen, dass Sie DB2 Universal Database verwenden. Sie werden durch die folgenden Tasks geführt:
Die folgenden Tasks sind optional:
Gehen Sie wie folgt vor:
Unter Windows:
Sie müssen 'Installationsverzeichnis' durch den Pfad zu Ihrem DB2-Produktinstallationsverzeichnis, z. B. C:\PROGRA~1\IBM\SQLLIB ersetzen. Diesen Pfad können Sie mit dem Befehl 'db2level' suchen:CREATE DB DBINPUT CONNECT TO DBINPUT BIND 'Installationsverzeichnis\bnd\@db2cli.lst' blocking all grant public TERMINATE
Unter Linux:
Sie müssen 'Installationsverzeichnis' durch den Pfad zu Ihrem DB2-Produktinstallationsverzeichnis ersetzen. Diesen Pfad können Sie mit dem Befehl 'db2level' suchen:CREATE DB DBINPUT CONNECT TO DBINPUT BIND Installationsverzeichnis/bnd/@db2cli.lst grant public CLIPKG 5 TERMINATE
db2start
db2 -vf dbinput.sql
Nächster Schritt: Entscheiden Sie sich für eine der folgenden Optionen, um die Datenbanktabellen und Auslöser zu erstellen:
Hinweis: Berücksichtigen Sie Folgendes beim Erstellen der Datenbanktabellen und beim Zugriff darauf:
Datenbanktabellen und Auslöser erstellen:
CONNECT TO DBINPUT@ DROP TABLE "DBINPUT_CUSTOMER"@ CREATE TABLE "DBINPUT_CUSTOMER" ( "PKEY" VARCHAR(10) NOT NULL, "FIRSTNAME" VARCHAR(20), "LASTNAME" VARCHAR(20), "CCODE" VARCHAR(10) ) DATA CAPTURE NONE@ DROP TABLE "DBINPUT_EVENTS"@ CREATE TABLE "DBINPUT_EVENTS" ( "EVENT_ID" INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY ( START WITH 1 INCREMENT BY 1 MINVALUE 1 MAXVALUE 2147483647 NO CYCLE NO CACHE), "OBJECT_KEY" VARCHAR(80) NOT NULL, "OBJECT_VERB" VARCHAR(40) NOT NULL ) DATA CAPTURE NONE@ ALTER TABLE "DBINPUT_CUSTOMER" ADD CONSTRAINT "DBINPUTCUSTOMERPK" PRIMARY KEY ("PKEY")@ ALTER TABLE "DBINPUT_EVENTS" ADD CONSTRAINT "DBINPUTEVENTPK" PRIMARY KEY ("EVENT_ID")@ CREATE TRIGGER "DBIN_CUST_CREATE" AFTER INSERT ON "DBINPUT_CUSTOMER" REFERENCING NEW AS N FOR EACH ROW INSERT INTO DBINPUT_EVENTS (OBJECT_KEY, OBJECT_VERB) VALUES (N.pkey, 'Create')@ CREATE TRIGGER "DBIN_CUST_DELETE" AFTER DELETE ON "DBINPUT_CUSTOMER" REFERENCING OLD AS O FOR EACH ROW INSERT INTO DBINPUT_EVENTS (OBJECT_KEY, OBJECT_VERB) VALUES (O.pkey, 'Delete')@ CREATE TRIGGER "DBIN_CUST_UPDATE" AFTER UPDATE ON "DBINPUT_CUSTOMER" REFERENCING NEW AS N FOR EACH ROW INSERT INTO DBINPUT_EVENTS (OBJECT_KEY, OBJECT_VERB) VALUES (N.pkey, 'Update')@ TERMINATE@
db2 -td@ -vf dbinput_create_tables_db2.sql
Warten Sie das Ende des Scripts ab. Wenn Sie das Script zum ersten Mal ausführen, wird die folgende Nachricht zweimal angezeigt:
DB21034E The command was processed as an SQL statement because it was not a valid Command Line Processor command. During SQL processing it returned: SQL0204N "DB2ADMIN.DBINPUT_EVENTS" is an undefined name. SQLSTATE=42704Ignorieren Sie beide Nachrichten. Die Nachricht wird angezeigt, weil das Script versucht, die möglicherweise bereits vorhandenen Tabellen 'DBINPUT_CUSTOMER' und 'DBINPUT_EVENTS' zu löschen, bevor neue Tabellen erstellt werden. Wenn das Script jedoch zum ersten Mal ausgeführt wird, kann das Script keine Tabellen finden.
Falls Sie das Script nicht zum ersten Mal ausführen, wird möglicherweise für jeden der Auslöser eine Warnung angezeigt:
SQL0280W View, trigger or materialized query table "DB2ADMIN.DBIN_CUST_UPDATE" has replaced an existing inoperative view, trigger or materialized query table. SQLSTATE=01595Diese Nachrichten können ebenfalls ignoriert werden.