我试图设置插入行的过程并使用参数中的值来更改其他表中的值。但是......错误,我和谷歌=没有解决方案......
INSERT INTO transakce (`id_transakce`, `akce_uzivatele_id`, `typ_transakce`, `castka`, `datum_sazky`)
VALUES (NULL, _akceuzivateleid ,_typ_transakce,_castka, _datum);
SET kreditUzivatele := SELECT ` kredit` FROM `uzivatele` WHERE uzivatele.id_uzivatele = _akceuzivateleid ;
SET kreditUzivatele := kreditUzivatele + _castka;
UPDATE `uzivatele` SET `kredit` := kreditUzivatele WHERE uzivatele.id_uzivatele = _akceuzivateleid ;
处理您的请求时发生了一个或多个错误: 以下查询失败:" CREATE DEFINER =
marek
@%
程序creditCharge
(IN_akceuzivateleid
INT(9),IN_typ_transakce
VARCHAR( 20)CHARSET utf8,IN_castka
INT,IN_datum
TIMESTAMP)不确定性修改SQL数据SQL安全性入侵者插入转换(id_transakce
,akce_uzivatele_id
,typ_transakce
,castka
,datum_sazky
)VALUES(NULL,_akceuzivateleid,_typ_transakce,_castka,_datum); SET kreditUzivatele:= SELECTkredit
FROMuzivatele
WHERE uzivatele.id_uzivatele = _akceuzivateleid; SET kreditUzivatele:= kreditUzivatele + _castka;更新uzivatele
SETkredit
:= kreditUzivatele WHERE uzivatele.id_uzivatele = _akceuzivateleid; " MySQL说:#1064 - 你的SQL语法有错误;查看与您的MySQL服务器版本相对应的手册,以便在#k; SET kreditUzivatele附近使用正确的语法:= SELECTkredit
FROMuzivatele
WHERE uzivatele.id_uzi'在第4行
答案 0 :(得分:0)
您可以尝试更改以下声明:
SET kreditUzivatele := SELECT ` kredit` FROM `uzivatele` WHERE uzivatele.id_uzivatele = _akceuzivateleid ;
到此:
DECLARE kreditUzivatele;
SELECT ` kredit` into kreditUzivatele FROM `uzivatele` WHERE uzivatele.id_uzivatele = _akceuzivateleid ;
或者这个:
DECLARE kreditUzivatele;
SET kreditUzivatele = (SELECT ` kredit` FROM `uzivatele` WHERE uzivatele.id_uzivatele = _akceuzivateleid);