kan man så lave en trigger der automatisk indsætter "unit_qty" / "cust" i det felt der heder "cust_pr_unit" når der er data i både "unit_qty" og "cust" altså ikke hvis der mangler data i det ene felt.
Du fortæller ikke hvilke værdier der skal komme i cust_pr_unit. Jeg gætter på, at det skal være cust divideret med unit_qty. Jeg gætter videre på, at du vil have cust_pr_unit beregnet både når du har indsat en ny række og når du har opdateret en række. I så fald skal du bruge to triggers, AFTER INSERT og AFTER UPDATE. Princippet er følgende (ikke tested, hurtigt skrevet ned som et eksempel der muligvis skal rettes til med syntax:)
CREATE TRIGGER tr_avg_insert AFTER INSERT ON prod_cost_pr_unit FOR EACH ROW UPDATE prod_cost_pr_unit SET new.cust_per_unit = new.cust/new.unit_qty WHERE new.cust IS NOT NULL AND unit_qty IS NOT NULL
Og for updates det samme, bare CREATE TRIGGER tr_avg_update AFTER UPDATE ....
Men tillad mig denne bemærkning (som jeg er klar over du ikke bad om:) Det regnes generelt for en dårlig ide at bevare i en database værdier der kan beregnes ud fra andre værdier. Det beregnes normalt, når værdierne trækkes ud. Lad os antage, at du ikke har feltet prod_cost_pr_unit. Så vil du have en udskrift af cust per unit for de id'er der har både unit_qty og cust fyldt ud. Det får du ved sådan en forespørgsel:
SELECT id, cust/unit_qty average FROM prod_cost_per_unit WHERE cust IS NOT NULL AND unit_qty IS NOT NULL
Hej Christian_Belgien jo du har helt ret i din antagelse, jeg tester det i morgen og så høre du fra mig. vedr om det re en god ide eller ej at gemme et beregnet fejl, så er jeg ikke uenig med dig, og baggrunden for dette er også mere at få lavet den første trigger. jeg er godt med på at man oftes bruge en trigger til at skrive i en anden tabel når der er sket noget i en den første tabel.
Hvad så, sth, fik du kikket på mit indlæg? Var det til nytte?
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.