次の非常に単純なストアド プロシージャを django から実行しようとしています。実際にはもっと複雑なものを実行する予定ですが、これをテストとして使用して実行しています。SPは、mysqlから直接実行すると機能しますが、djangoから実行しようとすると何もしません。エラーはありません。最初はパーミッションだと思っていましたが、サイトはデータベースを読み書きできます。djangoで生のSQLとして実行してみましたが、何も起こりません。SPに構文エラーを導入して、接続できるかどうかを確認しようとしました。構文エラーが検出されるため、django は SP に接続します。しかし、それは単に実行されません。ジャンゴコードは次のとおりです。
def priceupdate(request, store_id):
cur = connection.cursor()
try:
cur.callproc('liquorDB.Test_scheduler')
finally:
cur.close()
return HttpResponseRedirect(request.META.get('HTTP_REFERER'))
そして、ストアドプロシージャは次のとおりです。
DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `Test_scheduler`()
BEGIN
update liquorDB.store_store set Address = '45 Test' where StoreID = 1;
END