Ich baue eine Stored Procedure, um automatisch neue Datensätze zu speichern:
Die anderen Felder in der Tabelle fibu.bk_bill sind (neben ID als auto-increment) entweder not null, haben einen default-Wert oder sollten durch einen Trigger "Before Insert for each row" festgelegt werden, beispielsweise:
Aber das funktioniert so nicht.
Könnte es sein, dass ein Trigger nicht ausgelöst wird, wenn der INSERT aus einer Stored Procedure aufgerufen wird? Die Beschreibung über Restrictions on Stored Programs verstehe ich nicht (so weit reichen meine Englisch-Kenntnisse nicht). Danke schon mal! Jürgen
Umgebung: MySQL Ver 8.42 Distrib 5.5.27, for Win64 on x86; MySQL Workbench CE for Windows version 5.2.42 revision 9752; Windows 7 Home Premium 64-bit
PS. Die Unsicherheiten bei last_insert_id stören mich nicht.
PS 2. current_year ist falsch, das gibt es nicht, sondern muss durch year(current_date) ersetzt werden.
Nachtrag: Inzwischen habe ich festgestellt, dass das Problem wohl nicht an der SP liegt, sondern an der Workbench oder vielleicht sogar an MySQL selbst. Wenn ich bei "Edit Table" einen neuen Datensatz eintrage und mit Apply speichern will, werden fehlende Einträge in Spalten angemeckert, obwohl sie durch den Trigger mit Inhalt versehen werden sollen.
Meine Frage lautet jetzt: Kann das jemand bestätigen? Ist es ein Problem der Workbench oder von MySQL? Wo kann man ein solches Verhalten als Bug melden (denn wozu gibt es sonst Trigger)?
Code:
/* vorläufige Speicherung der neuen Rechnung */ insert into fibu.bk_bill (kd_id) values (last_kd); select last_insert_id() into last_id;
Code:
if new.re_jahr is null then set new.re_jahr = current_year; end if;
Error Code: 1364. Field 're_jahr' doesn't have a default value
Umgebung: MySQL Ver 8.42 Distrib 5.5.27, for Win64 on x86; MySQL Workbench CE for Windows version 5.2.42 revision 9752; Windows 7 Home Premium 64-bit
PS. Die Unsicherheiten bei last_insert_id stören mich nicht.
PS 2. current_year ist falsch, das gibt es nicht, sondern muss durch year(current_date) ersetzt werden.
Nachtrag: Inzwischen habe ich festgestellt, dass das Problem wohl nicht an der SP liegt, sondern an der Workbench oder vielleicht sogar an MySQL selbst. Wenn ich bei "Edit Table" einen neuen Datensatz eintrage und mit Apply speichern will, werden fehlende Einträge in Spalten angemeckert, obwohl sie durch den Trigger mit Inhalt versehen werden sollen.
Meine Frage lautet jetzt: Kann das jemand bestätigen? Ist es ein Problem der Workbench oder von MySQL? Wo kann man ein solches Verhalten als Bug melden (denn wozu gibt es sonst Trigger)?
Comment