2017-11-15 9 views
0

私はmysqlを使っていくつかのトリガーを構築しています。そのうちの1人は、挿入された値がデータベースに存在するかどうかを確認しています。mysqlのnew/old.colnameに引用符を追加しますか?

トリガーが日付の値を比較するとき。 0行に戻ります。私はnew.columnの名前を引用して追加しようとしましたが、文字通り 'new.column'と読みます。例として '2017-11-15'ではありません。

ここでは、コードです:

BEGIN 
declare jumlah int; 
declare stok_awal int; 
declare stok_akhir int; 
set @jumlah:=(select count(*) from stok where stok.id_barang=new.id_barang and stok.tgl_stok=date(new.tgl)); 
//I need help for above line code 
if (@jumlah IS NULL) 
then 
insert into stok (stok.id_barang,stok.tgl_stok,stok.jml_terbeli,stok.stok_akhir) values (new.id_barang,new.tgl,new.jumlah,new.jumlah); 
else 

set @stok_awal:=(select stok_awal from stok where tgl_stok=date(new.tgl) and id_barang=new.id_barang); 
//I also need help for above line code 

set @stok_akhir:[email protected]_awal+new.jumlah; 
insert into `stok`(id_barang,tgl_stok,jml_terbeli) values (new.id_barang,new.tgl,new.jumlah); 
end if; 
END 

すべてのヘルプはしてください? ありがとう

+1

のようなものにコードを変更しましたか?私は、宣言された変数の前にvを付けて接頭辞を付けることにしました。 –

+0

stok.tgl_stok = date(new.tgl) - これはdate(new.tgl_stok)でなければなりませんか? –

答えて

0

@ P.Salmonがコメントするまで気づかなかった。
変数名をつけるのは間違いでした。コルネームで競合していた。
は、私はその後@jumlahを使用jumlahを宣言なぜこの

set v_jumlah:=(select count(*) from stok where stok.id_barang=new.id_barang and stok.tgl_stok=date(new.tgl)); 
関連する問題