Hi,
        you should add something like "IGNORE UPDATE" or "IGNORE TRIGGER" at the
end of the update statement of the trigger.

Yves

-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] Behalf Of Torsten Lohr
Sent: 10 juillet, 2003 03:23
To: [EMAIL PROTECTED]
Subject: Timestamp-Trigger causes "General Error; 800 Implicit SERVERDB
restart"


Hello there,

when trying to use SAPDB I stumbled over the following phenomena:

I created a small table with a TIMESTAMP-column. This column schould always
list the timestamp of the last time a specific row was changed. To acomplish
this
I used a trigger.

Now, when the trigger fires the database shuts down on the server. I have to
bring it back online. There is no data loss or anything, but the server puts
the database offline.

Sometimes there is a error message, somtetimes not. The error message
reads: General Error; 800 Implicit SERVERDB restart (connection aborted)

If you change the datetype from TIMESTAMP to TIME or DATE everything works
fine.

Can anyone help me to fix it. BTW I am using a LINUX Server (SUSE 8.1,
Kernel
2.4.19).
The SAPDB Version is 7.4.3.10 installed from RPMs.

Bye, Torsten...

-------------------------- Appendix --------------------------

Here is a test script with which I was able to reproduce the error.

// -------------- Crash
DROP TABLE "DBA"."Test"
//
CREATE TABLE "DBA"."Test"
(
        "TSTID"                Char (8) BYTE    DEFAULT STAMP,
        "TEXT"                 Char (8) ASCII,
        "_mdate"               Timestamp    DEFAULT  TIMESTAMP,
        PRIMARY KEY ("TSTID")
)
//
CREATE TRIGGER "tstupd" FOR "DBA"."Test" AFTER UPDATE EXECUTE
(
        UPDATE "DBA"."Test" SET "_mdate"=timestamp WHERE TSTID=:NEW.TSTID;
)
//
INSERT INTO "DBA"."Test" (TEXT) VALUES ('test1')
//
INSERT INTO "DBA"."Test" (TEXT) VALUES ('test2')
//
INSERT INTO "DBA"."Test" (TEXT) VALUES ('test3')
//
INSERT INTO "DBA"."Test" (TEXT) VALUES ('test4')
//
UPDATE "DBA"."Test" SET TEXT='test10' WHERE TEXT='test1'


If you change the script like this. It's working.

// ----------- Work
DROP TABLE "DBA"."Test"
//
CREATE TABLE "DBA"."Test"
(
        "TSTID"                Char (8) BYTE    DEFAULT STAMP,
        "TEXT"                 Char (8) ASCII,
        "_mdate"               Time    DEFAULT  TIME,
        PRIMARY KEY ("TSTID")
)
//
CREATE TRIGGER "tstupd" FOR "DBA"."Test" AFTER UPDATE EXECUTE
(
        UPDATE "DBA"."Test" SET "_mdate"=time WHERE TSTID=:NEW.TSTID;
)
//
INSERT INTO "DBA"."Test" (TEXT) VALUES ('test1')
//
INSERT INTO "DBA"."Test" (TEXT) VALUES ('test2')
//
INSERT INTO "DBA"."Test" (TEXT) VALUES ('test3')
//
INSERT INTO "DBA"."Test" (TEXT) VALUES ('test4')
//
UPDATE "DBA"."Test" SET TEXT='test10' WHERE TEXT='test1'

_______________________________________________
sapdb.general mailing list
[EMAIL PROTECTED]
http://listserv.sap.com/mailman/listinfo/sapdb.general

_______________________________________________
sapdb.general mailing list
[EMAIL PROTECTED]
http://listserv.sap.com/mailman/listinfo/sapdb.general

Reply via email to