» »

UPDATE INTO v sam vnos zapisa (MYSQL)

UPDATE INTO v sam vnos zapisa (MYSQL)

SynTax64 ::

Potreboval bi pomoč pri vstavljanju določenega podatka ob vpisu podatka v bazo.
Recimo imamo v neki tabeli atribute: atribut_1,atribut_2, atribut_3.

Kar sedaj želim jaz je, da ko vnesem podatek atribut_1,atribut_2 v bazo, da se mi ob tem vpisu v atribut_3 vpiše neka izračunana vrednost ki bazira na podlagi prvih dveh atributov.

jernejl ::

atribut_3 lahko izračunaš že v kodi in ga potem izračunanega vstaviš v tabelo hkrati z atrubit_1 in atribut_2, lahko pa uporabiš trigger.
http://dev.mysql.com/doc/refman/5.5/en/...

SynTax64 ::

Zadeva trenutno funkcionira, če nek zapis preneseš v nek nov zapis v novo "začasno tabelo"
CREATE TRIGGER izracun_vsote AFTER INSERT ON izracun
FOR EACH ROW
INSERT tmp_tabela SET vsota=NEW.atr1_podatek_tabela1+NEW.atr2_podatek_tabela1;

Torej v tem primeru se podatek atr1, atr2 iz trenutne tabele1(izracun) prenese v tabelo (tmp_tabela), terustrezno izračuna.

Vendar rešitev z dodatno tabelo ni rešitev, saj želim zapisati podatek v tem primeru vsoto v ta isti zapis(vrstico) kamor sem vnesel atr1 ter atr2.
Morda kakšen namig glede tega kako se naj lotim zadeve?

keworkian ::

A je to skripta ali program ali kaj?
Obscenities in B-Flat

jernejl ::

Tudi to lahko narediš s triggerjem.
Primer:
http://www.java2s.com/Tutorial/MySQL/02...

Še eden:
http://www.w3resource.com/mysql/mysql-t...

Zgodovina sprememb…

  • spremenil: jernejl ()

SynTax64 ::

jernejl hvala lepa za odgovor mi je zelo pomagala tvoja povezava.
Torej, da še pojasnim kaj je rešitev mojega problema: glede na to da izračunan podatek vrivamo preden se ta zapiše v bazo je potrebno najprej določiti kdaj se TRIGGER izvede kar v mojem primeru pomeni BEFORE UPDATE, torej kalkulacija/vpis/preverjanje atributov pred zapisom v bazo. Ker potrebujem le vriniti podatek v ta isti zapis v delu za trigger_event torej pred telesom TRIGGERja ne vnašamo podatkov o tabeli ampak enostavno v primeru da sledi več stavkov dodamo BEGIN ....telo trigerja ...END stavek, v trigger_body pa le stavke za kalkulacijo.

Zgodovina sprememb…

  • spremenil: SynTax64 ()


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[SQL] Kako omejiti vrednost med parent in child tabelo?

Oddelek: Programiranje
71465 (1259) MrStein
»

SQL problem

Oddelek: Programiranje
141703 (1321) win64
»

xml dnevni uvoz v bazo

Oddelek: Programiranje
101787 (1540) keworkian
»

[PHP]Timestamp in mysql

Oddelek: Programiranje
82380 (2045) 680x0
»

[T-SQL] Kako vnest podatek v bazo in da ti hkrati vrne id?

Oddelek: Programiranje
162909 (2627) dmok

Več podobnih tem