
postgresqlで、「WARNING 進行中のトランザクションがありません」のエラーが出てしまいました。
これはそのままの意味だと思うのですが
直す方法がわかりません。
ワーニングなので、、、といいたいところですが、そうもいかず。
apのログで、トランザクション関係の辺りを見ましたところ、
トランザクションを開始し、
TABLEをDROPしようとしましたが、存在しなかった(ようだ)。
(PQexecがエラーでリターン)
存在しないけれど、commit してトランザクションを終わらせている。
のが原因かなと思いました。
なので、PQexec()がエラーの場合はcommitしなければいいのかと
はずしましたが結果は同じでした。
トランザクションが無いのだからrollbackもいらないですよね。
そこで質問ですが
drop文、1ステップのSQL実行も明示的にトランザクションの処理をしたほうがいいのでしょうか?
このワーニングは通常のトランザクションの処理の中で、どういう時にでるのでしょうか?
oracleとpostgresqlの明示的・暗黙的な制御に戸惑っています。
(oracleからpostgresqlに移行することになりました)
叱咤でも何でもかまいませんので、アドバイスよろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
PostgreSQLではOracleと異なりDDLで自動コミットされないので、基本的にはBEGINとCOMMIT(またはROLLBACK)で囲むのが基本です。
今回のWARNINGは、すでにトランザクションが終了しているのにCOMMIT/ROLLBACKを発行したために発生しています。アプリケーションのコードパスでBEGINとCOMMIT/ROLLBACKが1:1対応になっていない箇所(ROLLBACKしているのにCOMMITもしている、など)があるのではないでしょうか?
また、今回のケースではテーブルが存在しないことが通常ケースとしてあり得るということのようなので、DROP TABLE IF EXISTS <table name>;というDDLを使うのが良いと思います。
ちなみに、PostgreSQLではトランザクション開始後にエラーが発生してもトランザクションは終了せずabort状態に遷移します。この状態では、COMMIT/ROLLBACK以外の全てのSQLがエラーになります。COMMIT/ROLLBACKを実行すると、どちらでもトランザクションはROLLBACKされて終了します。
https://www.postgresql.jp/document/9.3/html/tuto …
参考URL:https://www.postgresql.jp/document/9.3/html/sql- …
mino-motsuさん、ありがとうございます!
もう一度、1:1対応になっているか確認してみます。
また、
DROP TABLE IF EXISTS <table name>;
というSQLも教えていただき、大変助かりました。
過去に、sqlで存在確認をしようといろいろ試したのですが、できなかった履歴がありました。(当然、上記とは違ったsqlがコメントになっていました)
早速組み入れてみます。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ExcelからAccessのテーブルに書き込む時に時間がかかる 1 2022/10/14 20:38
- Illustrator(イラストレーター) イラストレーターが買えない 1 2022/08/25 13:23
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- PostgreSQL DBFluteについて質問です。 環境:PostgreSQL java8 前提:webアプリケーショ 1 2022/07/07 00:49
- PostgreSQL PostgreSQLドライバの登録。 MavenプロジェクトからPostgreSQLへ接続をするため 1 2022/09/26 12:30
- PostgreSQL SQLでUPSERTを一度に複数行やる方法 3 2022/03/25 15:17
- Excel(エクセル) EXCELの外部データ取得ができない 1 2023/03/23 09:03
- IT・エンジニアリング 不具合の現状認識をしないプログラマって信用できる人? できない人? 8 2023/07/28 09:09
- その他(メールソフト・メールサービス) サンダーバードメール移動しない 1 2023/05/13 11:21
- MySQL #1062 - '0' は索引 'PRIMARY' で重複しています。とでています。 1 2023/01/01 06:13
このQ&Aを見た人はこんなQ&Aも見ています
-
今年はじめたいことは?
今年はこれをはじめたい!ということを教えてください!
-
人生最悪の忘れ物
今までの人生での「最悪の忘れ物」を教えてください。 私の「最悪の忘れ物」は「財布」です。
-
もし10億円当たったら何に使いますか?
みなさんの10億円プランが知りたいです!
-
あなたの人生で一番ピンチに陥った瞬間は?
これまでの人生で今振り返ると「あの時、1番ピンチだったなぁ...」という瞬間はありますか?
-
集中するためにやっていること
家で仕事をしているのですが、布団をはじめ誘惑だらけでなかなか集中できません。
-
postgresql についてです
PostgreSQL
-
psql 使用時に自動 commit を無効にするには
PostgreSQL
-
pg_restoreでエラー
PostgreSQL
-
-
4
IF関数で空欄(")の時、Nullにしたい
その他(Microsoft Office)
-
5
passwordが入れられません・・・・
PostgreSQL
-
6
postgreSQLのint型は桁数指定ができない??
PostgreSQL
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・【大喜利】【投稿~1/31】『寿司』がテーマの本のタイトル
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・【大喜利】【投稿~1/20】 追い込まれた犯人が咄嗟に言った一言とは?
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SQLでUPSERTを一度に複数行やる...
-
文字切り替えの時に 中央にでる A
-
画像とカテゴリーを出力したい...
-
列が存在しないと言われる
-
PostgreSQLで"pg_dumpall -f da...
-
SQLにて指定日付より前、かつ最...
-
PostgreSQL14.6のSSL対応について
-
投稿記事と関連付けているテー...
-
PostgressからMySQL(MariaDB)...
-
PostgresqlをインストールするP...
-
PostgreSQLでのクエリ登録
-
フォ-トナイトこれできますか(...
-
plgファイルの開き方
-
エクセルで縦のカラムデータを...
-
Postagre SQL エラー
-
PuTTyにログインまでは出来たの...
-
自治会総会の成立要件について
-
PostgreSqlでFunctionの作成に...
-
bashスクリプトでpostgreSQLの...
-
PostgreSQL レコードからアイテ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
postgresqlでのトランザクショ...
-
postgresql のフルバキュームみ...
-
JDBCで配列を使ったSQL文(INSE...
-
sqlにて0無しの月をフォーマッ...
-
SQLについてです
-
マルチコアを使ってくれない
-
postgresql 8.3のドキュメント
-
windows版postgresql 異なるバ...
-
postgresqlの接続ポート5432か...
-
MySQLとPostgresの同時使用
-
Windows10がインストールできま...
-
大至急!mdfファイルの中身を見...
-
Access フォーム「使用可能」...
-
PostgreSQLの標準文字コードをS...
-
odbc接続処理が遅い
-
PostgreSQLで集約関数をネスト...
-
Oracle9iを再インストールす...
-
autovacuumがメモリ負荷に!
-
postgreSQLに複数行(改行され...
-
検索で濁点や半濁点をヒットさ...
おすすめ情報