Net-srac Geschrieben 16. November 2007 Teilen Geschrieben 16. November 2007 Hallo zusammen, folgendes Problem. Ich habe eine Datenbanktabelle die ich als Zähler nutze. Das heißt ich habe Funktionen die ich einfach mit einer Zahl und einem Operator aufrufe. Diese Funktionen führen mir dann den Operator und die Zahl auf ein Datenbankfeld aus. Also z.B. BenutzerID | Forumbeiträge | Nachrichten Zähler in der Datenbank für Benutzer 1 steht bei Nachrichten auf 2 Was müßte ich tun, wenn ich jetzt als Parameter für meine Funktion ein -3 bekomme, den Nachrichtenzähler nicht auf -1 sondern auf 0 zu stellen? Wenn ich als Datentyp unsigned anwende, dann ists wie beim Tacho und ich habe einen Überschlag auf die höchste Zahl. Also Zaehler hat den Ausgangspunkt 2 Update tabelle set zaehler=zaehler-3 where benutzer = 1 setzt zaehler bei einem Smallint auf -1 bei einem unsigned smallint auf 65535 Ich brauche aber irgendeine Lösung die mir erlaubt das SmallInt 0 wird wenn der Subtrahend größer ist als der vorhandene Wert. Ich kann leider nicht vorher prüfen ob er in der DB größer ist und ihn dann ggf reduzieren. Oder geht das mit einem SQL-Kniff? Besten Dank schonmal vorneweg!! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Amstelchen Geschrieben 16. November 2007 Teilen Geschrieben 16. November 2007 wenn ich dich recht verstehe, entweder MySQL AB :: MySQL 5.0 Reference Manual :: 19 Triggers oder MySQL AB :: MySQL 5.0 Reference Manual :: 11.3 Control Flow Functions beides ungetestet, hilft aber möglicherweise. s'Amstel Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.