A5:SQL Mk-2

開発のこと、日々のこと

UPDATE文実行時のエラーについて

ホーム フォーラム A5:SQL Mk-2掲示板 UPDATE文実行時のエラーについて

8件の投稿を表示中 - 1 - 8件目 (全8件中)
  • 投稿者
    投稿
  • #24373 返信
    野田
    ゲスト

    お世話になっております。
    現在、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文はできませんでした。※事象は変わらず。

    どうぞよろしくお願いいたします。

    以上

    #24644 返信
    松原正和
    キーマスター

    野田さんこんにちは。
     
    SQLの中断はしばしばDBサーバーとクライアントのプロトコルの状態異常を引き起こすようです。
     
    申し訳ないのですが、こうなるとDBを切断して再度接続しなおすしかありません。
     
    ただ、書いていただいた内容ですと、再接続でもだめで、ずっと同じエラーが出続けるということでしょうか? この場合は、ちょっとよくわからないです。
     
    あと、データベースの種類はPostgreSQLでしょうか?

    #24680 返信
    野田
    ゲスト

    松原さん

    はじめまして。
    ご連絡ありがとうございます。
    >申し訳ないのですが、こうなるとDBを切断して再度接続しなおすしかありません。
    >ただ、書いていただいた内容ですと、再接続でもだめで、ずっと同じエラーが出続けるということで>しょうか?
    今再接続して試したのですが事象は変わらずでした。
    何回やっても同じエラーが出ます。

    >あと、データベースの種類はPostgreSQLでしょうか?
    MySQLです。

    どうぞよろしくお願いいたします。

    #24960 返信
    松原正和
    キーマスター

    野田さんこんにちは。
     
    調査したところ、該当エラーはトランザクションが開始した後に、SET TRANSACTION 文を実行した際のエラーのようです。
     
    A5:SQL Mk-2 では分離レベルの設定として SET SESSION TRANSACTION は実行しますが、SET TRANSACTION は実行しません。
     
    もしかするとですが、MySQL サーバー側で init_connect システム変数を設定したりされていないでしょうか?
     
    あるいは、A5:SQL Mk-2 以外で接続可能かなどお教えいただけると何かわかるかもしれません。

    #25052 返信
    野田
    ゲスト

    松原さん

    ご連絡ありがとうございます。
    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 sec

    3、下記は、エラーが出力しました。
    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

    どうぞよろしくお願いいたします。

    #25183 返信
    松原正和
    キーマスター

    野田さんこんにちは。
     
    A5:SQL Mk-2 では、MySQLデータベース接続時にログインダイアログで指定された分離レベルに応じた SET SESSION TRANSACTION 文を発行します。例えば、”Read Committed (コミット済みデータのみ読取)” であれば、


    SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED

    などです。
    SQLエディタでSQLを実行するときはとくにSQLを加工するわけではありません。
     
    ちょっとよくわからない状態になっている気がしますが、例えば、ログインダイアログでの分離レベルを変更して接続した場合などは状況は変わるでしょうか?

    #25624 返信
    野田
    ゲスト

    松原さん

    ご連絡ありがとうございます。
    ご返答が遅くなって申し訳ございません。
    ——————————————————–
    SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED

    UPDATE ……
    ——————————————————–
    上記を実行してみましたが、残念ながら、以下のメッセージが出力しました。
    「SQL : #25001Transaction characteristics can’t be changed while a transaction is in progress」

    >ログインダイアログでの分離レベルを変更して接続した場合
    上記の接続設定ですが、「データベースを追加と削除」の画面から設定するのでしょうか。
    ご教示ください。

    どうぞよろしくお願いいたします。

    #26336 返信
    松原正和
    キーマスター

    野田さんこんにちは。
     
    MySQL のバージョンもそろえて調査したいので、MySQL のバージョンもお教えいただけると助かります。OSが何かや、MySQLでデフォルトから変えている設定があるかなども分かれば、お教えいただけると助かります。

8件の投稿を表示中 - 1 - 8件目 (全8件中)
返信先: UPDATE文実行時のエラーについてで#24644に返信
あなたの情報:




コメントは受け付けていません。