oli-nux
Goto Top

MySQL Trigger - Zählen von Zeilen (Count) und "Überwachen" einer Spalte

Hallo,

habe ein Problem und kann es leider selber mit MySQL Trigger nicht lösen.

In der MySQL-DB bzw. in einer der Tabellen soll ein Trigger erstellt werden der die (id)-Zeilen zählt und ggf. gleichzeitig eine (status-)Spalte überwacht.

Möglichkeit 1 (bevorzugt):
Sobald z.B. 10 (id-)Zeilen erreicht wurden dürfen keine weiteren Daten in diese Tabelle aufgenommen werden.
Der 11.te Datensatz müsste sich also in eine (eigene) Trigger-Tabelle einschreiben und erst dann automatisch in die andere Tabelle eingefügt werden, wenn dort weniger als 10 (id-)Zeilen vorhanden sind.

Möglichkeit 2:
Es dürfen in die Tabelle max. 15 Datensätze eingestellt werden, der Trigger soll die status-Spalte (aktiviert/deaktiviert) überwachen und nur 5 aktive Datensätze zulassen.
Also es dürfen max. 5 Datensätze immer den Status aktiv haben!
Ein 16.ter Datensatz dürfte nicht erstellt werden können (erst wenn weniger als 15 Datensätze in der Tabelle sind, dürften wieder Datensätze hinzugefügt werden bis 15 erreicht sind).

Content-Key: 312624

Url: https://administrator.de/contentid/312624

Ausgedruckt am: 29.03.2024 um 13:03 Uhr

Mitglied: wiesi200
wiesi200 14.08.2016 um 12:19:17 Uhr
Goto Top
Hallo,

Warum das ganze per Trigger lösen. Ich würd im Frondend überprüfen ob das erstellen von Datensätzen zulässig ist.
Mitglied: wiesi200
wiesi200 14.08.2016 um 12:21:34 Uhr
Goto Top
Und die Anzahl würd ich nicht über ID machen sonder einfach über Count die Anzahl zählen lassen
Mitglied: Oli-nux
Oli-nux 14.08.2016 aktualisiert um 13:14:43 Uhr
Goto Top
Weil ich dazu einen Override der Datei(en) schreiben müsste und ich das nicht kann!
Hunderte Euros in die Hand zu nehmen um das (um)schreiben zu lassen habe ich dafür auch nicht, zumal dort ja nur eine Abfrage (if, else) integriert werden müsste (bevor die Daten in der DB landen).

Somit bleibt nur der Trigger übrig.

Eine Spalte ist eben "id" und klar, ich würde die Zeilen zählen lassen wollen und nicht die ID's.