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

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

新規登録して質問してみよう
ただいま回答率
85.48%
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回答

5171閲覧

postgresSQLでテーブルが作成できない

Yuki_S

総合スコア356

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クリップ

投稿2017/09/13 00:44

###前提・実現したいこと
pgAdmin4を用いて、新しいテーブルを作成しようとしているがエラーが発生して作成できない。

###発生している問題・エラーメッセージ
TESTDBという名前のDatabaseを新規で作成し、Schemasのpublicの中のTablesで右クリックしてQueryToolを選択し該当のソースコードを入力してExplainAnalyzeを行うと構文エラーが発生しました。

Userはデフォルトのままで権限などは特に変更していません。

ERROR: "bigint"またはその近辺で構文エラー LINE 2: testid bigint, ^ ********** Error ********** ERROR: "bigint"またはその近辺で構文エラー SQL state: 42601 Character: 137

###該当のソースコード

SQL

1create table public.repair_requirement ( 2 testid bigint, 3 testdate date, 4 demand text, 5 place1 text, 6 carrieoverflag bool, 7 primary key(testid) 8)

###試したこと
右クリックで出てくるコンテキストメニューからCreate-Tableで作成をできることは確認しています。
しかし、作成する際に確認できるSQLをQueryToolに張り付けても同じ構文エラーが発生しています。

###補足情報(言語/FW/ツール等のバージョンなど)
使用しているそれぞれのバージョン
pgAdmin4 1.6
PostgresSQL 9.6
localhostでの接続
Windows7 64bit

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

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

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

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

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

guest

回答2

0

ベストアンサー

ExplainAnalyzeを行うというのはSQLにEXPLAIN ANALYZEを付けて実行してくれているだけなので、実際にSQLに付けて実行してみましょう。

sql

1EXPLAIN ANALYZE 2create table public.repair_requirement ( 3 testid bigint, 4 testdate date, 5 demand text, 6 place1 text, 7 carrieoverflag bool, 8 primary key(testid) 9)

これを実行すると構文エラーを再現できます。
何故かというのはCREATE TABLEには対応していないからです。
問い合わせが発生しないので実行計画を調べる必要は無いでしょう。

EXPLAINのドキュメント
https://www.postgresql.jp/document/9.6/html/sql-explain.html

EXPLAIN [ ANALYZE ] [ VERBOSE ] statement

statement
実行計画の表示対象となる、SELECT、INSERT、UPDATE、DELETE、VALUES、EXECUTE、DECLARE、CREATE TABLE AS、CREATE MATERIALIZED VIEW ASのいずれかの文です。

問い合わせが発生するCREATE TABLE ASはEXPLAIN ANALYZEできます。

投稿2017/09/13 02:08

shimitei

総合スコア799

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

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

Yuki_S

2017/09/13 02:28

回答ありがとうございます。 そもそもEXPLAINのことが分かっていませんでした。 AnalyzeとあるのでSQLserverの解析の様にSQL文の問題がある個所を検出する物だと勝手に解釈していました。 ドキュメントもありがとうございます。読んで正しく理解しようと思います。
Yuki_S

2017/09/13 02:30

BAについては、EXPLAINの解説までつけていただいたshimiteiさんにさせていただきます。 sazi様も即座の解答非常に助かりました。ありがとうございます。
guest

0

スクリプトの実行であれば、Execute/Refresh(F5)です。
ExplainAnalyzeは実行計画です。Create文に対して行うと当然エラーになります。

pgadmin4は、重いし、日本語化対応が不完全なので、必須の理由が無ければ、
pgadmin3か他のDBツールの使用も検討されてみてはどうですか。

投稿2017/09/13 00:57

編集2017/09/13 01:29
sazi

総合スコア25188

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

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

Yuki_S

2017/09/13 01:06

回答ありがとうございます。 早速メニューバー⇒Tools⇒Query Toolで作成したタブで同様に実行してみましたが、上記エラーと同じエラーが発生しました。 その他、もし何か手がかりがありましたらお願いいたします。
sazi

2017/09/13 01:25

失礼しました。出来ていない箇所を見誤ってました。 訂正しましたので、確認下さい。
Yuki_S

2017/09/13 02:23

ありがとうございます。 エラーになるものなのですね。AnalyzeとあるのでSQLserverの解析の様にSQL文の問題がある個所を検出する物だと思っていました。 他のサイトでも3の方が軽いとか言われてるので、pgAdmin3の検討もしようと思います。
Yuki_S

2017/09/13 02:30

BAについては、EXPLAINの解説までつけていただいたshimiteiさんにさせていただきます。 sazi様も即座の解答非常に助かりました。ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問