on update für Berechnungen nutzen

apophis171

Benutzer
Beiträge
22
Guten Abend Community,

ich habe eine Tabelle, wo verschieden Zahlen, von verschiedenen Clients, eingetragen werden. Einige sollen auch mit bestimmten "Zellen" addiert werden oder mit bestimmten Werten multipliziert werden.

Kann man mit der "on update" Funktion bestimmte Zellen zusammenrechnen lassen? Also, ähnlich wie bei excel?

Normalerweise werden die Daten mit einem Pythonscript eingetragen, allerdings muss ich auch öfter mal Daten nachtragen, was ich mit HeidiSQL mache. Ich hab da aber immer keine Lust anschließend mit dem Taschenrechner nochmal durchzurennen um alles auszurechnen.

Es existiert auch kein Ausgabescript, womit ich mir die Daten auswerten lassen kann. Die Auswertung mache ich ebenfalls mit HeidiSQL.

Vielleicht verrenne ich mich auch gerade in einer blöden Idee, vielleicht hat aber auch jemand eine bessere Idee :)
 
Werbung:
Du kannst die Werte, die Du brauchst, im Select Statement einfach berechnen. Mit 2 Spalten aQuadrat und bQuadrat kannst Du die Spalte cQuadrat ausrechnen:
Code:
Select aQuadrat, bQuadrat, aQuadrat+bQuadrat as cQuadrat from...
Dieses Select kannst Du auch als View definieren. Wenn Du in der Originaltabelle Werte nachträgst, liefert der View immer alle Ergebnisse zur Anzeige, als sei es eine Tabelle. Du brauchst keine Trigger.
 
Genau das will ich ja eben nicht. Ich weiß, dass ich mir mit Heidi auch querys anlegen kann, aber es ist für mich einfacher, wenn ich die Daten nur einmal berechnen lasse. Quasi eine SQL/mariaDB Funktion, die mir bei einem Update ein query auf eine bestimmte "Zelle" ausführt.

Sollte ich dich jetzt falsch verstanden haben, tut es mir natürlich leid :)
 
Das ginge mit einem TRIGGER oder noch einfacher mit einer GENERATED COLUMN:

Code:
test=*# create table apophis171 (a int, b int, a_plus_b int generated always as (a+b) stored);
CREATE TABLE
test=*#
test=*#
test=*# insert into apophis171 (a,b) values (3,15);
INSERT 0 1
test=*# select * from apophis171 ;
 a | b  | a_plus_b
---+----+----------
 3 | 15 |       18
(1 row)

test=*#

Möglicherweise wird MySQL dies aber nicht können.
 
Werbung:
Nachtrag:

Sollte sich jemand dieser Lösung annehmen und HeidiSQL nutzen: Wenn ihr Tabellen nachträglich bearbeiten wollt, müsst ihr das mit einem extra query machen. Aus welchen gründen auch immer versaut Heidi die Abfrage, wenn das "generated always as" im query ist.
 
Zurück
Oben