質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
pgAdmin

pgAdminは、オープンソースのPostgreSQL管理ツール。様々な機能を持ち、コマンドラインベースでPostgreSQLへ行う操作のほとんどをpgAdminを用いて実行することができます。

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

Q&A

解決済

2回答

3759閲覧

pgAdmin4のSequencesにシーケンスが表示されない

fsk5303

総合スコア21

pgAdmin

pgAdminは、オープンソースのPostgreSQL管理ツール。様々な機能を持ち、コマンドラインベースでPostgreSQLへ行う操作のほとんどをpgAdminを用いて実行することができます。

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

0グッド

0クリップ

投稿2019/05/27 08:26

編集2019/05/27 09:20

前提・実現したいこと

pgAdmin4を利用し、GUIでSequenceの設定を行いたい。
(最小値、最大値、特に現在値)

発生している問題・エラーメッセージ

Create文で生成したテーブルの主キー列を自動採番の列としています。
しかし、シーケンス「ba_area_id_seq」が画面左メニューの「Sequences」部分(赤色で図示)に表示されません。
これは正常な動作でしょうか?

pgAdminの画面
※都合により一部黒色で消させてもらっています。

詳しい経緯

サーバー操作

  1. Linuxサーバー上でPostgreSQLサービスを起動し、サーバー上でpsqlを利用してCREATE DATABASECREATE TABLEを実行しました。(言わずもがなですがCUIでの実施で、SQL文は上の図を参照ください。)
  2. この際に作成したTABLEの主キー列が自動採番の列となっています。(このタイミングでシーケンスが作られていると認識しています)

クライアント操作

  1. クライアントからpgAdmin4でサーバーのPostgreSQLに接続します。
  2. 画面左メニューに、シーケンス「ba_area_id_seq」が表示されず困っています。(今回の質問です。)
  3. この状況でGUI上で下記操作を行ってシーケンスを作成した場合、そのシーケンスのみが画面左メニューに表示されます。

画面左メニューの「Sequences」部分を右クリックし、「Create」→「Sequence」→「Save」で新たなシーケンスをGUIから作成した場合は、作成したシーケンスがメニューに追加されます。
また、追加されたシーケンスを右クリックすることで、「Properties」にてGUIで最小値、最大値、現在値の設定が可能です。

追加情報

ユーザーについて

SQLの実行やPostgreSQLへの接続はすべてデフォルトの「postgres」ユーザーで行っており、すべての権限を持っていると認識しています。

シーケンスの認識について

画面左のメニューから「Sequences」部分を右クリックし、「Grant Wizard...」をクリックすると、SQLにてCREATE TABLEを実行した際のシーケンスもズラっと表示されます。(そのため、シーケンスの存在を認識はしているようです。)
また、GUI上から「test」という名前でシーケンスを作成した際の表示もわかるような画像を用意しました。

②のシーケンスが①のところに表示されず困っております。
pgAdminの画面

よろしくお願いいたします。

補足情報(FW/ツールのバージョンなど)

  • PostgreSQL 10.7
  • pgAdmin 4.4

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2019/05/27 08:32

>GUIでSequenceの設定を行いたい。 と >画面左メニューの「Sequences」部分を右クリックし、「Create」→「Sequence」→「Save」で新たなシーケンスをGUIから作成した場合は、作成したシーケンスがメニューに追加されます。 は相反する状況のように思いますが、実際はどうなのでしょうか。
fsk5303

2019/05/27 08:38

はい、相反する状況です。言葉足らずで申し訳ありません。また、理解不足から間違った事を言っていたらすみません。 シーケンスを作成する方法としていくつか方法があると認識しています。 現状として、ある方法で作られたSequenceはGUIで設定ができず、別の方法で作られたSequenceはGUIで設定が可能な状況になっています。 前者はCREATE TABLE文をCUIにて実行した場合です。 後者はGUIにてSequenceを作成した場合です。 前者の方法で作成したシーケンスが画面左のメニューに表示されず困っております。(これが正常な動作なのかどうなのか不明です)
m.ts10806

2019/05/27 08:40

質問は編集できますので状況が分かるように追記いただければと。
m.ts10806

2019/05/27 08:42

これって、もしかして実行したその直後というわけではないですか? メニューはずっと出っ放しなので右クリック→再読み込みとかで最新化する必要がありそうですが。
fsk5303

2019/05/27 08:54

質問を修正いたしました。お手数おかけいたします。
guest

回答2

0

ベストアンサー

シーケンスは、create tableselialbigserialを指定した時のみ自動で作成されますが、
質問のcreate文のように、項目にシーケンスを割り当てるのであれば、事前にシーケンスを作成しておく必要があります。

投稿2019/05/27 09:38

sazi

総合スコア25195

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fsk5303

2019/05/27 09:50

なるほど、ご回答ありがとうございます。 少し答えに近づいた気がします。 話が膨らんでしまい質問の意図がぶれてしまいそうで記載していなかった点がありますので追記させていただきます。 実際に実行したCREATE TABLE文は以下のようになっています。 ```sql create table "ba_area" ( "id" bigserial not null , "code" character varying(5) not null , "name" text not null ..... , "created_by" character varying(20) , "created_at" timestamp(0) without time zone default now() not null , "updated_by" character varying(20) , "updated_at" timestamp(0) without time zone default now() not null , constraint "ba_area_PKC" primary key ("id") ) ; ``` これが、GUI上で確認すると上記の画像のようなSQL文として表示されてしまいます。 また、新たに同じ名前のシーケンス(ba_area_id_seq)を作成しようとすると、「relation "ba_area_id_seq" already exists」のエラーが表示されます。 そのため、実際はお教えいただいた、「>create tableでselialやbigserialを指定した時のみ自動で作成されます」というやり方で実施できていると思うのですが・・・。 何かわかりますでしょうか。
sazi

2019/05/27 11:46

pgAdmin3だと問題なく表示されますね。 表示はされていなくても、実際には存在しているようですが、表示以外で支障が出ていますか? 表示については、今日はちょっと無理ですが、pgAdmin4で確認してみようと思います。
fsk5303

2019/05/27 23:36 編集

お手数おかけいたします。ありがとうございます。 - pgAdmin3で表示されることについて、私も確認いたしました。PostgreSQL10以降、シーケンスの扱いが変わっており、pgAdmin3は非対応のため、GUIでシーケンスを操作しようとするとエラーが表示されると認識しています。そのためpgAdmin4を使おうという判断に至った次第です。 - pgAdmin4では、表示以外では今のところ支障が出ておりません。たとえば、INSERTを実行すると、正しくIDがインクリメントされながら採番されます。 お手数おかけいたしますが、何かお分かりになりましたら、よろしくお願いいたします。
sazi

2019/05/28 00:18 編集

pgAdmin4.4で問題なく表示(chrome)されました。 ブラウザを変えてみるとか、他のPCで行ってみるとか、再度インストールされてみてはどうでしょうか。
sazi

2019/05/28 00:42

確認できていたのは4.1でした。 4.4にすると表示されませんね。最新の4.6だと表示されます。
fsk5303

2019/05/28 05:38

pgAdmin4.6にアップデートしたところ、求めていた通りに表示されました!! pgAdminの不具合だったということでしょうか? >ところで何故そんなにGUIの操作に拘るのでしょうか >プロパティでの内容を変更できる関数が用意されています。 たしかに仰る通りなのですが、表示されないのが私の勘違いなのか、SQL間違いなのか、表示されないのが正常なのか、pgAdminの不具合なのか、こういうことが気になってしまいまして・・・。 その他、なぜ実際に実行したSQLとGUI上で表示されるSQLとが異なるのか、など勉強させていただきたいことがたくさんありますので、もしかしたらまた質問させていただくかもしれません。その際は何卒よろしくお願いいたします。 実際に試してのご丁寧な回答ありがとうございました。大変勉強になりました。
fsk5303

2019/05/28 05:45

pgAdmin4.6のリリースノートのBug fixesの箇所に記載のある、以下の修正で修正されたようですね。 重ねてお礼いたします。ありがとうございました。 Bug #4154 - Ensure the treeview shows all sequences except those used to implement IDENTITY columns (which can be edited as part of the column). Show all if Show System Objects is enabled.
guest

0

pgAdmin4上でシーケンスを作成した直後であれば、
データベースツリーの再読込をすればいいんじゃないかと思ったけど、違う?

投稿2019/05/27 08:40

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fsk5303

2019/05/27 08:43

ご回答ありがとうございます。 pgAdmin4のリフレッシュ、再接続、再起動、サーバーのPostgreSQLサービスの再起動、等はすでに実施しておりますが、状況に変化はありません・・・。
退会済みユーザー

退会済みユーザー

2019/05/27 08:59

データベースに接続しているユーザー(ロール)の権限が、シーケンス作成がそもそも出来ないってことはないでしょうか。
fsk5303

2019/05/27 09:22

私も権限まわりが原因ではないかなと推測はしているのですが、理解不足のためはっきりしておりません・・・。 操作はすべてデフォルトの「postgres」ユーザーで行っているため、すべての権限を持っていると認識しています。 また、質問文を追記させてもらいました。
fsk5303

2019/05/28 05:39

pgAdminのバージョンを上げることで、解決いたしました。 この度はご回答ありがとうございました。また、機会がありましたらよろしくお願いいたします。
退会済みユーザー

退会済みユーザー

2019/05/28 06:03

たまたまバグ持ちバージョンだったかもしれませんね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問