Christian Kruse: Mysql-Trigger macht doppelten Eintrag

Beitrag lesen

Moin M.,

Gibt es nicht genau deshalb UNIQUE constraints? ;-)

Das Problem ist, die vorhandene Datenbank will ich nicht ändern, da sonst jedes Update viel Aufwand ist. Deshalb auch die Trigger ;)

Inwiefern viel Aufwand? Schreib doch Migrations?

In Rails ist das zum Beispiel ziemlich gut gelöst. Dort ist die Datenbank quasi versioniert, jedesmal, wenn sich die Struktur ändert, wird ein Migrations-Script angelegt (ziemlich einfach, so eine Migration zu schreiben), dass die Struktur von der bestehenden Version verändert hin zur gewünschten Version. Sowas hab ich für ein PHP-Framework auch schonmal selber geschrieben, das lohnt sich halt wirklich weil es einiges an Arbeit erspart.

Und die Struktur hat keine ID. In jeder Spalte darf ein Wert mehrfach vorkommen, es dürfen nur keine exakt gleichen Einträge sein.

Man kann UNIQUE-Constraints auch auf mehrere Spalten auf einmal legen, in dem Fall muss dann die Kombination der Felder eindeutig sein.

Ich sehe das immer wieder, dass Leute die Datenbank nur als „einfaches“ Storage benutzen. Dabei können die DBMS idR soviel mehr. Gerade im Bereich Konsistenz der Daten sind RDBMS richtig gut, darauf sind sie spezialisert. Warum also nicht nutzen?

LG,
 CK