Kampfgummibaerlie
Datenbank-Guru
- Beiträge
- 756
Also, ich arbeite nach wie vor an meinem Lieblings-Projekt und komme einmal wieder zu einem Problem 
Ich möchte eine Trigger-Procedure aufbauen, die sich on delete zündet, und den Lagerstand in der Tabelle Stoffe wieder höher setzt, wenn eine Bestellung abgebrochen wird (gelöscht).
Mein Tabellenaufbau (Bestellungen):
ich stoße auf das Problem on delete von dieser Tabelle wegen dem Trigger...
Meine Funktion:
der trigger:
Mein Problem:
der oben genannte trigger führt 0 deletes durch...
ein after-trigger meint dann, dass kein wert im loop NULL sein darf...
Kann mir hierbei jemand helfen?
LG Kampfgummibaerlie

Ich möchte eine Trigger-Procedure aufbauen, die sich on delete zündet, und den Lagerstand in der Tabelle Stoffe wieder höher setzt, wenn eine Bestellung abgebrochen wird (gelöscht).
Mein Tabellenaufbau (Bestellungen):
Code:
create table bestellungen(id serial primary key, produkte int[]);
ich stoße auf das Problem on delete von dieser Tabelle wegen dem Trigger...
Meine Funktion:
Code:
create or replace function return_stoffe_on_delete() returns trigger as $$
declare
produkte int[] := bestellungen.produkte from bestellungen where bestellungen.produkte limit 1;
var int;
begin
foreach var in array produkte loop
update stoffe set lagermenge = lagermenge+schnittmuster.stoffmenge
from schnittmuster
inner join produkte on (produkte.schnittmuster = schnittmuster.id)
where var = produkte.id;
end loop;
return new;
end;
$$ language plpgsql;
der trigger:
Code:
create trigger return_stoffe_on_delete before delete on bestellungen for each row execute procedure return_stoffe_on_delete();
Mein Problem:
der oben genannte trigger führt 0 deletes durch...
ein after-trigger meint dann, dass kein wert im loop NULL sein darf...
Kann mir hierbei jemand helfen?
LG Kampfgummibaerlie