Tom: MySQL: gezielt Exceptions auslösen

Hello,

ich wage es nach einiger Wartezeit nochmal, danach zu fragen, ob inzwischen jemand weiß, wei man in einem Trigger gezielt eine Exception auslösen kann, damit die weitere Abarbeitung _mit_ _qualifizierter_ _Fehlermeldung_ abgebrochen werden kann.

Mein Beispiel hierzu ist immer gerne wieder:

in einer Tabelle soll ein Zähler mit jedem Update
  heraufgezählt werden
  Wenn der mitgelieferte Referenzwert vom momentan eingetragenen
  abweicht, oder kein referenzwert mitgeliefert wird, soll der
  Vorgang des Updates mit einer Fehlermeldung abgebrochen werden.

Das geht zwar auf schmuddelige Weise ganz prima, indem man innerhalb des Triggers dann frecherweise auf eine nicht vorhandene Spalte zugreift, aber zweitesn ist nicht gesichert, dass das auch in Zukunft so bleibt und drittens fehlt eben die qualifizierte Fehlermeldung.

Harzliche Grüße vom Berg
http://bergpost.annerschbarrich.de

Tom

--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau
Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)

  1. Hello,

    siehe auch Posting von Vinzenz:
    https://forum.selfhtml.org/?t=160459&m=1043666

    Ich habe nun nochmal einen ganzen Tag googled und etliche ähnliche Fragestellungen zu dem Thema gefunden. Erstaunlich ist, dass einige ziemlich gleichlautende Anforderungen sich sogar seit Anfang 2005 (Zweitausenundfünf) im MySQL-eigenen Forum befinden.

    Da andere DBMS diese Standardanforserung an Trigger leisten, versthe ich nicht, dass MySQL das bis heute nicht eingebaut hat. Der Trigger ist ohne gezielte Exception nur 1/10 soviel wert!

    Wie kann man denen denn nochmals höflich aber bestimmt auf die Füße treten deshalb? Ich will ja nicht gleich wieder unangenehm auffallen ;-)

    Harzliche Grüße vom Berg
    http://bergpost.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau
    Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)

    1. Ich grüsse den Cosmos,

      Wie kann man denen denn nochmals höflich aber bestimmt auf die Füße treten deshalb? Ich will ja nicht gleich wieder unangenehm auffallen ;-)

      Du könntest Mysql patchen und diesen Patch einreichen. Alternativ kannst du auf eine andere Datenbanksoftware umsteigen, die dein gewünschtes Feature bietet. Allerdings musst du damit rechnen, dass du dann diese Datenbanksoftware einiges an Geriebenen kostet.

      Kurz, wer etwas kostenlos nutzt, kann IMO Vorschläge machen hat aber keinerlei rechte, Forderungen zu stellen. ;)

      Möge das "Self" mit euch sein

      --
      Fragt ein Atom das andere: Hast du mein Elektron gesehen? Ich bin heute so positiv.
      ie:{ br:> fl:| va:| ls:& fo:{ rl:( n4:{ de:] ss:) ch:? js:| mo:) sh:( zu:)
      1. Hello,

        Du könntest Mysql patchen und diesen Patch einreichen. Alternativ kannst du auf eine andere Datenbanksoftware umsteigen, die dein gewünschtes Feature bietet. Allerdings musst du damit rechnen, dass du dann diese Datenbanksoftware einiges an Geriebenen kostet.

        Kurz, wer etwas kostenlos nutzt, kann IMO Vorschläge machen hat aber keinerlei rechte, Forderungen zu stellen. ;)

        Nun denn, ich selber habe noch eine Informix-Lizenz laufen.
        Da habe ich zwar momentan Schwierigkeiten, die API für PHP 5.x zum Laufen zu bekommen, aber das wird so langsam.

        Viele meiner DV-Kunden haben bei MySQL bereits gelöhnt. Gelegentlich rechnet sich das für sie auch, weil sie Updates schneller bekommen und es teilweise sogar deutsche Datenblätter zu den (neuen, verbesserten, bereinigten) Features auf Papier gibt.

        Daher weiß ich ja auch, dass im MySQL Customer-Forum das Thema schon seit 2005 bekannt ist.

        Die Nachfrage aus dem "public market" scheint aber überhautpt noch nicht zu bestehen...

        Ich kann nicht mit dem Zugangscode eines Kunden drängeln gehen. Es muss auch andere Wege geben.

        Harzliche Grüße vom Berg
        http://bergpost.annerschbarrich.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau
        Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)

        1. Ich grüsse den Cosmos,

          Es muss auch andere Wege geben.

          Ja, du zahlst dir nen Programmierer, damit er dir die entsprechende Änderung macht ;)
          Ich seh das ähnlich, wie bei Openoffice, wo ich schon ewig drauf warte, damit man in der Bearbeitungsansicht mehrere Seiten nebeneinander Darstellen kann.
          Entweder mach ichs mir selber (spart euch die dummen Sprüche ;)) oder ich warte, bis sich jemand dran setzt und es implementiert.

          Eine andere Lösung fällt mir zu diesem Thema im Allgemeinen nichtein.

          Möge das "Self" mit euch sein

          --
          Fragt ein Atom das andere: Hast du mein Elektron gesehen? Ich bin heute so positiv.
          ie:{ br:> fl:| va:| ls:& fo:{ rl:( n4:{ de:] ss:) ch:? js:| mo:) sh:( zu:)
          1. Hello,

            Ja, du zahlst dir nen Programmierer, damit er dir die entsprechende Änderung macht ;)

            In MySQL würde ich selber nichts ändern mögen.
            Und außerdem ist mir nicht klar, ob der resultierende Code dann überhaupt noch geschäftlich nutzbar wäre, also lizenzrechtlich...

            Solch eine Änderung würde schon einiges kosten, sodass man die Lösung dann "großtechnisch" am Markt anbieten müsste, um die Kosten wieder einzuspielen. Ob MySQL das mitmacht?

            Harzliche Grüße vom Berg
            http://bergpost.annerschbarrich.de

            Tom

            --
            Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
            Nur selber lernen macht schlau
            Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)

            1. Ich grüsse den Cosmos,

              Ob MySQL das mitmacht?

              Das dürfte von der Lizenz abhängen, die ich aber im Detail nicht kenne.
              Wenn es was in der Art der LGPL ist, sollte es kein Problem sein, eine Erweiterung zu schreiben und die zu verkaufen.

              Möge das "Self" mit euch sein

              --
              Fragt ein Atom das andere: Hast du mein Elektron gesehen? Ich bin heute so positiv.
              ie:{ br:> fl:| va:| ls:& fo:{ rl:( n4:{ de:] ss:) ch:? js:| mo:) sh:( zu:)