ホーム › フォーラム › A5:SQL Mk-2掲示板 › UPDATE文実行時のエラーについて
-
投稿者投稿
-
野田
ゲストお世話になっております。
現在、UPDATE文を実行すると、下記のメッセージが出力して実行できない状態です。
解決手段がわからず困っております。
大変恐縮ですが、もし原因がお分かりになれば、ご教示ください。経緯:
1、UPDATE文を実行中に「SQLの中断」ボタンをクリックして、SQLを止めました。
2、再度、同じUPDATE文を実行したところ、以下のメッセージがポップアップしてSQLが実行できなくなりました。
「SQL : #25001Transaction characteristics can’t be changed while a transaction is in progress」補足:
・SELECT文は正常に実行できました。
・A5MK2を一度アンインストールして、再インストールして見たところ、
SELECT文は正常に実行できましたが、UPDATE文はできませんでした。※事象は変わらず。どうぞよろしくお願いいたします。
以上
松原正和
キーマスター野田さんこんにちは。
SQLの中断はしばしばDBサーバーとクライアントのプロトコルの状態異常を引き起こすようです。
申し訳ないのですが、こうなるとDBを切断して再度接続しなおすしかありません。
ただ、書いていただいた内容ですと、再接続でもだめで、ずっと同じエラーが出続けるということでしょうか? この場合は、ちょっとよくわからないです。
あと、データベースの種類はPostgreSQLでしょうか?野田
ゲスト松原さん
はじめまして。
ご連絡ありがとうございます。
>申し訳ないのですが、こうなるとDBを切断して再度接続しなおすしかありません。
>ただ、書いていただいた内容ですと、再接続でもだめで、ずっと同じエラーが出続けるということで>しょうか?
今再接続して試したのですが事象は変わらずでした。
何回やっても同じエラーが出ます。>あと、データベースの種類はPostgreSQLでしょうか?
MySQLです。どうぞよろしくお願いいたします。
松原正和
キーマスター野田さんこんにちは。
調査したところ、該当エラーはトランザクションが開始した後に、SET TRANSACTION 文を実行した際のエラーのようです。
A5:SQL Mk-2 では分離レベルの設定として SET SESSION TRANSACTION は実行しますが、SET TRANSACTION は実行しません。
もしかするとですが、MySQL サーバー側で init_connect システム変数を設定したりされていないでしょうか?
あるいは、A5:SQL Mk-2 以外で接続可能かなどお教えいただけると何かわかるかもしれません。野田
ゲスト松原さん
ご連絡ありがとうございます。
SET SESSION TRANSACTION;
をA5:SQL Mk-2実行して見たところ、コンソールに下記のエラーが出力しました。ご確認ください。SQL : SET SESSION TRANSACTION
SQL : #42000You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ” at line 1>あるいは、A5:SQL Mk-2 以外で接続可能かなどお教えいただけると何かわかるかもしれません。
MySQL Workbench 6.3で下記を実行しました
1、下記は、正常に処理されました。
start transaction;
UPDATE …….2、下記は、エラーが出力しました。
SET SESSION TRANSACTION;
UPDATE …….
09:30:10 SET SESSION TRANSACTION Error Code: 1064. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ” at line 1 0.031 sec3、下記は、エラーが出力しました。
SET TRANSACTION;
UPDATE …….
09:33:56 SET TRANSACTION Error Code: 1064. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ” at line 1 0.032 secどうぞよろしくお願いいたします。
松原正和
キーマスター野田さんこんにちは。
A5:SQL Mk-2 では、MySQLデータベース接続時にログインダイアログで指定された分離レベルに応じた SET SESSION TRANSACTION 文を発行します。例えば、”Read Committed (コミット済みデータのみ読取)” であれば、
SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED
などです。
SQLエディタでSQLを実行するときはとくにSQLを加工するわけではありません。
ちょっとよくわからない状態になっている気がしますが、例えば、ログインダイアログでの分離レベルを変更して接続した場合などは状況は変わるでしょうか?野田
ゲスト松原さん
ご連絡ありがとうございます。
ご返答が遅くなって申し訳ございません。
——————————————————–
SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTEDUPDATE ……
——————————————————–
上記を実行してみましたが、残念ながら、以下のメッセージが出力しました。
「SQL : #25001Transaction characteristics can’t be changed while a transaction is in progress」>ログインダイアログでの分離レベルを変更して接続した場合
上記の接続設定ですが、「データベースを追加と削除」の画面から設定するのでしょうか。
ご教示ください。どうぞよろしくお願いいたします。
松原正和
キーマスター野田さんこんにちは。
MySQL のバージョンもそろえて調査したいので、MySQL のバージョンもお教えいただけると助かります。OSが何かや、MySQLでデフォルトから変えている設定があるかなども分かれば、お教えいただけると助かります。 -
投稿者投稿