[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Aug 2003
    Beiträge
    2

    Primary Key über Trigger erstellen

    Hallo Forum,

    ich möchte über einen Before Insert Trigger, der eine Stored Procedure aufruft eine Id generieren und in den neu eingefügten Datensatz als Schlüssel eintragen.

    Siehe dazu bitte die Beispiele in der Textdatei.

    Leider erhalte ich die Fehlermeldung daß eine Prozedur (in diesem Fall vermutlich der Trigger), die mit dem Attribut READS OR CONTAINS SQL DATA keine Prozedur mit dem Attribut MODIFIES SQL DATA aufrufen darf.

    Wie ist sinnvollerweise das beste Vorgehen bei der Vergabe
    von Schlüsselwerten über einen Trigger ?

    Wo findet man Beispiele ?

    Danke !

    Gruß Claus

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Die Vergabe des Schlüssels solltest du direkt im Trigger durchführen und nicht in eine Prozedur verlegen.

    Ausserdem würde ich den Schlüsselsatz nicht immer löschen und neu einfügen sondern per UPDATE wegschreiben.
    Auch sollte diese Schlüsseldatei einen eigenen Schlüssel (z.B. den Dateinamen) enthalten, so dass du diese für mehrere Dateien verwenden kannst.
    Den Init dieser Datei machst du einmalig per STRSQL ("insert into mykeys values('myfile1', 0)").
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  3. #3
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    Hallo,

    SQL Before Trigger dürfen keine Updates durchführen (siehe SQL Reference), dürfen also nicht mit modifies deklariert werden.
    Zwei Work arounds sind denkbar:

    Einen externen Trigger nehmen, der hat diese Restriktion nicht, oder eine externe Procedure nehmen, die nicht via SQL updated.

    Der Weg mit einem Before und einem After Trigger geht auch noch, letzterer darf nämlich den Update machen.

    Eleganter ist eigentlich eine SQL Function, die einen Schlüsselwert ermittelt, die müsste sogar als Default gehen.

    Für alle obigen Ansätze ist das Transaktionshandling keineswegs trivial!!!

    mfg

    Dieter Bender

Similar Threads

  1. verschlüsseltes zip erstellen ?
    By I0N in forum IBM i Hauptforum
    Antworten: 7
    Letzter Beitrag: 09-01-09, 17:38
  2. SQL Trigger
    By Jenne in forum NEWSboard Programmierung
    Antworten: 0
    Letzter Beitrag: 19-01-07, 09:24
  3. Authorization Problem nach ändern der Primary Group
    By ChrisX in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 11-10-06, 15:31
  4. Grafik-Dateien erstellen
    By KM in forum NEWSboard Java
    Antworten: 3
    Letzter Beitrag: 08-06-06, 09:09
  5. Erstellen Trigger über SQL / Read Funktion
    By GHoffmann in forum IBM i Hauptforum
    Antworten: 0
    Letzter Beitrag: 07-07-05, 09:18

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •