2ちゃんねる スマホ用 ■掲示板に戻る■ 全部 1- 最新50    
レス数が1000を超えているけど、まだ書けるかも知れないよ。

PostgreSQL Part.11

1 :NAME IS NULL:2016/05/03(火) 15:42:33.27 ID:???.net
PostgreSQL (ぽすとぐれすきゅーえる, ぽすとぐれす) について語るスレです。

●関連サイト
PostgreSQL 本家
http://www.postgresql.org/
日本PostgreSQLユーザ会
http://www.postgresql.jp/
ドキュメント
http://www.postgresql.jp/document/current/html/
ダウンロード
http://www.postgresql.jp/PostgreSQL
Let's Postgres (ポータルサイト)
http://lets.postgresql.jp/
pgFoundry
http://pgfoundry.org/

●前スレ
PostgreSQL Part.10
http://echo.2ch.net/test/read.cgi/db/1393353314/

2 :NAME IS NULL:2016/05/03(火) 15:50:06.35 ID:???.net
あらあら、次の舞踏会はこちらで開かれるのかしら?

3 :NAME IS NULL:2016/05/03(火) 15:56:07.47 ID:BecA4HPo.net
●過去スレ
PostgreSQL 2テーブル目 (WebProgから派生)
http://pc8.2ch.net/test/read.cgi/db/1056944337/
PostgreSQL & pgsql-jp ML 3テーブル目
http://pc11.2ch.net/test/read.cgi/db/1079771059/
【Windows】 PostgreSQL8 Part.1 【対応】 (実質part4)
http://pc11.2ch.net/test/read.cgi/db/1102247223/
PostgreSQL Part.5
http://pc11.2ch.net/test/read.cgi/db/1196512717/
PostgreSQL Part.6
http://pc11.2ch.net/test/read.cgi/db/1224318817/
PostgreSQL Part.7
http://hibari.2ch.net/test/read.cgi/db/1256300618/
PostgreSQL Part.8
http://toro.2ch.net/test/read.cgi/db/1294641578/
PostgreSQL Part.9
http://toro.2ch.net/test/read.cgi/db/1338040695/
PostgreSQL Part.10
http://echo.2ch.net/test/read.cgi/db/1393353314/

●関連過去スレ
■   PostgreSQLのことならここで聞け   ■ (初心者part1)
http://pc8.2ch.net/test/read.cgi/db/1056960249/
■   PostgreSQLのことならここで聞け   ■ (初心者part2)
http://pc8.2ch.net/test/read.cgi/db/1091523132/
PostgresSQLについて語ろう (雑談part1)
http://pc8.2ch.net/test/read.cgi/db/1056992724/
PostgreSQLについて語ろう where OID=2::oid (雑談part2)
http://pc8.2ch.net/test/read.cgi/db/1136805513/

●関連スレ
2ch検索
http://find.2ch.net/index.php?STR=PostgreSQL
WebProg/PostgreSQL 2テーブル目
http://pc11.2ch.net/test/read.cgi/php/1047317680/

4 :NAME IS NULL:2016/05/03(火) 19:08:46.45 ID:???.net
>>3
あ、忘れてたありがと

5 :NAME IS NULL:2016/05/04(水) 00:35:18.46 ID:???.net
おっつおっつ

6 :NAME IS NULL:2016/05/12(木) 22:34:05.03 ID:???.net
PostgreSQL 9.6 beta1
http://www.postgresql.org/about/news/1668/

9.5から9.1のマイナーバージョンアップも。

7 :NAME IS NULL:2016/05/12(木) 22:59:09.52 ID:???.net
マイナーバージョンアップではなく
累積バグ修正と呼べといつも思う

8 :NAME IS NULL:2016/05/14(土) 07:25:02.09 ID:???.net
http://semver.org

9 :NAME IS NULL:2016/05/17(火) 12:51:27.21 ID:???.net
DBバージョン上げたら
insert into a select * from a_tmp where code = 1

列"b_flg"は型booleanですが、式は型textでした
ってエラー出るようになったんだけど、
CREATE CASTで対処するのが正しい道?

10 :NAME IS NULL:2016/05/17(火) 13:09:37.70 ID:???.net
>>9
エスパー求む

11 :NAME IS NULL:2016/05/17(火) 13:23:11.87 ID:???.net
>>9
そこで動かなくなるのってかなり古かったんじゃないか?

a_tmp にある b_flg に相当する列の型を boolean に変更すべきだろう。
CREATE (TEMP?) TABLE a_tmp (LIKE a) すればミスを避けられる。

12 :NAME IS NULL:2016/05/17(火) 13:28:59.38 ID:???.net
エスパーじゃないとわかんないのかw

説明すると
table a
code integer
b_flg boolean

table a_tmpも同じ構成のテーブル

で、booleanのフィールドがTRUEとか返すんだけど、それが
文字列だと思われてエラーになるみたい
# 8.4くらいから?

13 :NAME IS NULL:2016/05/17(火) 14:40:07.89 ID:???.net
>>11
もちろんa_tmpの b_flgの型はbooleanです。

14 :NAME IS NULL:2016/05/17(火) 15:00:34.52 ID:???.net
って自分でテーブル作って同じの試したらうまくいく・・・・

select b_flg from a_tmp

TRUEが帰ってくる時と
tが帰ってくる(こっちでエラーになる)のあるんだけど、何違うんだろ・・・

15 :NAME IS NULL:2016/05/17(火) 15:07:39.56 ID:???.net
「boolean型」なのか「text型にbooleanっぽい文字列が入ってる」のかをきちんと確認したほうが良い。
特にSELECT INTOでテーブルを作るような場合だと型指定が曖昧な場合がある。

16 :NAME IS NULL:2016/05/17(火) 15:33:03.01 ID:???.net
>>9
> DBバージョン上げたら
何から何に上げたのか

> insert into a select * from a_tmp where code = 1
どこでこれを実行しているのか

> table a_tmpも同じ構成のテーブル
本当か?

> で、booleanのフィールドがTRUEとか返すんだけど
何で実行するとそうなるのか

> 文字列だと思われて
思う主体は何か?

17 :NAME IS NULL:2016/05/17(火) 15:35:23.64 ID:???.net
> って自分でテーブル作って同じの試したらうまくいく
うまくいく環境と、うまくいかない環境の差異は何か

18 :NAME IS NULL:2016/05/17(火) 15:42:34.62 ID:???.net
>>9
> CREATE CASTで対処するのが正しい道?
なわきゃない

19 :NAME IS NULL:2016/05/17(火) 20:41:11.06 ID:???.net
なぜテーブル定義を確認しないんだろう...

20 :NAME IS NULL:2016/05/18(水) 13:16:35.30 ID:???.net
確認した結果同じ構成だったんだろ
知らんけど

21 :NAME IS NULL:2016/05/21(土) 16:12:15.04 ID:???.net
質問: shared_bufferを16GBに設定しているのに、実際にはそれ以下しか使用されてないっぽいんだが、どういうことでしょうか。

sahred_bufferの値が16GBであることを確認

$ grep shared_buffers /etc/postgresql/9.3/main/postgresql.conf
shared_buffers = 16GB # min 128kB

メモリ使用量を確認 (ファイルキャッシュを除くと9.781GBしか使われてない)

$ free -m
total used free shared buffers cached
Mem: 64384 64065 319 0 0 54284
-/+ buffers/cache: 9781 54603
Swap: 65487 120 65367

なおデータサイズは40GB程度。最大のテーブルが20GBくらいあって、それを全件検索してもメモリ使用量が増えない。
そのせいで性能が頭打ちになっている。だれかヒントおねがい。

22 :NAME IS NULL:2016/05/21(土) 17:03:47.14 ID:???.net
>>21
pg_buffercache を突っ込んで調べてみるのはどうか?
http://www.postgresql.jp/document/9.5/html/pgbuffercache.html

23 :NAME IS NULL:2016/05/21(土) 17:42:43.09 ID:???.net
>>21
SeqScan時は一定量のメモリでやり繰りする機能が入っているから全メモリは使わない。
強制的に共有バッファに乗せたいなら pg_prewarm を試すといい。

そして、「そのせいで性能が頭打ち」は誤解だったと気付くだろう。

24 :NAME IS NULL:2016/05/23(月) 09:04:57.49 ID:???.net
>>22
ありがとうございます。こんな便利なモジュールがあるんですね。
とはいえインストールするのはDBAの許可が下りなさそうなので困りました。

>>23
ありがとうございます。pg_prewarmのmanualページを読むと、
「プレウォームはキャッシュが主に空のとき、一般的には起動時にもっとも有用です。」
とありました。起動時以外は効果は薄いんでしょうか。困りました。

> そして、「そのせいで性能が頭打ち」は誤解だったと気付くだろう。

そうなんでしょうか。今のところ、HDDから最初に読み込むときに時間がかかるのが問題であり、2回目以降は高速なのでSQLは問題ないかなと思ってます。
たとえば select * from users where id = :user_id のようなSQLがあったら、
2回目以降はメモリキャッシュに載っているので数msですが、ユーザごとの最初の
アクセスではHDDから読み込むので、2秒〜3秒かかってしまうのが問題です。
それで、shared_bufferを16GB設定しているのに実メモリは9GBしか使っていない
(ファイルキャッシュを除く)のを改善すれば解決できると思っているんですが、
甘いでしょうか。

25 :NAME IS NULL:2016/05/23(月) 12:01:07.65 ID:???.net
>>24
ああ、全件検索が遅いのが問題なんじゃなくて、
全件検索ではウォームアップができないのが問題だったのか。
それなら pg_prewarm が適するだろうね。
テーブルだけでなくインデックスも prewarm が必要か確認して欲しい。
「起動時以外は効果は薄い」とは「あくまで準備体操」の意味。
全ユーザが一通りアクセスした後のメモリ状態になるまでの時間を早めているだけだからね。

26 :NAME IS NULL:2016/05/23(月) 13:51:14.62 ID:???.net
>>24
> たとえば select * from users where id = :user_id のようなSQLがあったら、
> 2回目以降はメモリキャッシュに載っているので数msですが、ユーザごとの最初の
> アクセスではHDDから読み込むので、2秒〜3秒かかってしまうのが問題です。

そのたとえが本当に適切なたとえだとしたら、遅い原因はキャッシュにのってないから
じゃなくて、インデックスがないからだな。

27 :NAME IS NULL:2016/05/24(火) 03:22:09.57 ID:???.net
さすがにそれは考えにくいから例えが適切じゃなかったんだろうなぁ。

28 :NAME IS NULL:2016/05/26(木) 23:53:37.00 ID:6qsFySzK.net
すみません、教えてください。
Windows7/8/10などのクライアントOSにPostgreSQL本体をインストールして、他のPCからそのDBに
アプリケーションで読み書きした場合、Windowsのライセンス違反になるのでしょうか?

ttp://itpro.nikkeibp.co.jp/article/COLUMN/20060811/245694/?rt=nocnt
↑のような制限にかかってしまうのでしょうか?

もしライセンス違反なら、PowerGresのような製品でWindows7/8/10で動作すると書いてあるん
ですが、これはスタンドアロン限定ということですか?

29 :NAME IS NULL:2016/05/27(金) 06:22:59.18 ID:???.net
>>28
ここで聞くより、PowerGres販売元にメールで聞いた方が良いと思う。

30 :NAME IS NULL:2016/05/27(金) 09:17:39.51 ID:???.net
>>28
問題ない

31 :NAME IS NULL:2016/05/27(金) 09:51:30.00 ID:???.net
ありますん

32 :NAME IS NULL:2016/05/27(金) 11:01:47.95 ID:???.net
そんなめんどくさいライセンス違反なんてあるの?

33 :NAME IS NULL:2016/05/27(金) 13:32:13.72 ID:???.net
>>28
> アプリケーションで読み書きした場合、Windowsのライセンス違反になるのでしょうか?
なる。
というのが本当かどうかを知りたければ、まずこれを読め。
http://www.haruru29.net/blog/windows-share-files-20-devices/
納得できなければ、MSに聞くのが手っ取り早い。

> もしライセンス違反なら、PowerGresのような製品でWindows7/8/10で動作すると書いてあるん
> ですが、これはスタンドアロン限定ということですか?
じゃないの?

34 :NAME IS NULL:2016/05/27(金) 14:04:58.50 ID:Swk78D+S.net
通信したらいかんの?
windows上のブラウザからデータもらうWebサーバーはみんなライセンス違反?

35 :NAME IS NULL:2016/05/27(金) 14:14:16.21 ID:???.net
IISなら限定的に公開してもいいという話もあるな
ただし、同時接続数10までというのは、同時に10台のクライアントからと言う意味ではなく、
connectionの数という話もある
普通のブラウザでアクセスすると、同時に5本くらいアクセスに行くから、台数でいうと2台までとか
そんな制限になってるらしい

まあ、Microsoftに質問するのが確実だろうが
(ただ、Web情報によれば、サーバ用途は駄目と言われるらしいが)

36 :NAME IS NULL:2016/05/27(金) 14:16:17.19 ID:???.net
すごく古い情報だが、
http://www.atmarkit.co.jp/fwin2k/win2ktips/207rest_iis_pro/rest_iis_pro.html
> Webサーバの機能制限
> TCPでの同時接続数は最大10個まで
> TCPレベルでの同時接続数が最大で10個までに制限される。1人のユーザーが多数のTCP接続を開始している場合には、それだけで10個のTCP接続がいっぱいになってしまう可能性がある

これが正しい情報で、なおかつ今でも有効だとすると、事実上Webサーバとしては機能しないだろう

37 :NAME IS NULL:2016/05/27(金) 14:18:08.03 ID:???.net
ちなみに、MS謹製のサーバ機能以外のアプリは、問い合わせると軒並み駄目だと言われる気がする
(個人の想像です)

38 :NAME IS NULL:2016/05/27(金) 14:27:21.13 ID:???.net
MSっていろいろめんどくさいね。そら逃げますわぁ

39 :NAME IS NULL:2016/05/27(金) 14:30:32.03 ID:???.net
Linuxにしとくのがいいよ

40 :NAME IS NULL:2016/05/27(金) 15:05:36.10 ID:???.net
ですよねぇ。ソース持ってきてメイク、インストールでそのまんま使えるのが
気持ちいい。ぼろいPCでもまぁ動く。社員DBぐらいならそんなもんで十分。

41 :NAME IS NULL:2016/05/27(金) 18:07:55.55 ID:tcTYH4g1.net
電話でpowergressに聞くと、クライアントOSにポスグレをインストールして他の端末からアクセスしても問題ないはず、そんな問い合わせはないとのこと。メールじゃないから正式回答かは分からないが。

しかしマイクロソフトによると、それはNG。ポスグレがインストールされてる端末のアプリケーション(ポスグレ本体)を介して結果を返しているので、サーバにしか許されない操作をしていることになるらしい。

ベンダーによっては、本来NGの使い方を製品ページで提案してるが、知らないか、都合よく解釈してるか、どっちかなんだろうな。

42 :NAME IS NULL:2016/05/27(金) 18:18:17.77 ID:???.net
>>41
> 電話でpowergressに聞くと、クライアントOSにポスグレをインストールして他の端末からアクセスしても問題ないはず、そんな問い合わせはないとのこと。メールじゃないから正式回答かは分からないが。
なんと質問したかによるな。
ちゃんとWindowsのライセンス的に問題はないか聞いたか?

43 :NAME IS NULL:2016/05/27(金) 22:30:53.99 ID:Swk78D+S.net
MSがダメっつーんだからダメだろ

44 :NAME IS NULL:2016/05/27(金) 22:37:49.54 ID:???.net
サーバ用途なのにWindows Serverを使わないような貧乏人にはLinux (サポート無し) がお似合い

45 :NAME IS NULL:2016/05/27(金) 22:47:11.17 ID:???.net
そら そーだなぁ と言って離れてくわけです

46 :NAME IS NULL:2016/05/27(金) 22:52:18.48 ID:???.net
シュリンクラップ契約は有効かっつー話はあるけどな。

47 :NAME IS NULL:2016/05/27(金) 23:15:31.07 ID:???.net
Excel共有なんかどうなるんだろ

48 :NAME IS NULL:2016/05/28(土) 00:08:57.80 ID:???.net
真面目な人ほど、コンプライアンスに厳しい会社ほど
従います。当たり前ですけど。

49 :NAME IS NULL:2016/05/28(土) 05:27:06.64 ID:???.net
>>47
共有するブックを置くファイルサーバーが Windows Server ならなんの問題もない
つか、コンテンツの問題じゃないし

50 :NAME IS NULL:2016/05/28(土) 14:55:10.76 ID:???.net
unique制約のindexをdescで作れますか

51 :NAME IS NULL:2016/05/28(土) 15:04:12.13 ID:???.net
>>50
目的は?

52 :NAME IS NULL:2016/06/16(木) 13:48:47.78 ID:???.net
PostgreSQLはストレージがHDDじゃなくてSSDでも装置の特性に合ったバッチリ最適なデータの出し入れをしてくれますか?

53 :NAME IS NULL:2016/06/16(木) 18:05:16.91 ID:???.net
してくれません
プランコストの調整くらいはできるが
基本的にはOSに丸投げ

54 :NAME IS NULL:2016/06/16(木) 18:13:16.71 ID:???.net
そうでしたか。。

55 :NAME IS NULL:2016/06/16(木) 18:37:11.62 ID:???.net
他のRDMSではSSD用に処理が分かれているのだろうか

56 :NAME IS NULL:2016/06/16(木) 20:43:11.40 ID:???.net
さすがに本体の処理は変わらんと思うがキャッシュ機構とかは専用設計があるみたい
http://www.oracle.com/technetwork/jp/database/articles/pickup/index-1598207-ja.html

57 :NAME IS NULL:2016/06/17(金) 01:21:21.43 ID:???.net
ストレージが比較的高速なサーバー機だとデフォルトのrandom_page_costが
全然合わないから調整必須、ってのは昔からだな。

58 :NAME IS NULL:2016/06/17(金) 02:49:21.84 ID:???.net
当然 I/O statは見るわなぁ。

59 :NAME IS NULL:2016/06/19(日) 00:37:31.45 ID:???.net
一度仕事で使ってみたい

60 :NAME IS NULL:2016/06/19(日) 10:44:21.98 ID:sk8gYGH6.net
ボードゲームのオリジナルオーダー制作
http://www.logygames.com/logy/ordermade.html
簡単に本格自作ボードゲームが作れる時代到来!!
http://jellyjellycafe.com/3869
100円ショップでボードゲームを自作しよう
https://sites.google.com/site/jun1sboardgames/blog/makeyourbg
ノーアイデアでボードゲームを作ろう第1回「100円ショップで物を買う」
http://boardgamelove.com/archives/boardgame-make-1/
ボードゲーム市場がクラウドファンディングの出現で急成長を遂げ市場規模を拡大中
http://gigazine.net/news/20150820-board-game-crowdfunding/

61 :NAME IS NULL:2016/08/13(土) 22:21:08.11 ID:N8gS1gM5.net
■質問内容
検索結果の続きを取得するSQLを教えてください。

■詳細
データベースを検索し、100件ずつ取得しようとしています。

検索結果は100件ずつ取得するため、検索結果が100件以上ある場合は、
続きとして101件目から取得することになります。

通常はOFFSET句を使用して続きを取得しますが、更新の多いデータベースのため、
レコード数が増減する可能性があり、OFFSETで特定の数スキップすると問題が発生します。
例えば、続きの100件を取得する際、スキップする最初の100件の中に新たなレコードが1件増えると、
最初の100件取得した際の100件目のレコードと、続きの101件目のレコードは同じものになります。

WHERE句で解決を試みようとも思いましたが、ユニークな値でORDER BYをかけているわけではないため、不可能と判断しました。
ORDER BYで対象としているカラムの結果は同じ値のものも含まれており、
その同じ値の続く途中で件数によって区切られた場合、そのカラムをWHEREの対象にはできません。

助けてください。

62 :NAME IS NULL:2016/08/13(土) 22:33:42.60 ID:???.net
ソートキーは当然あるわけだから、「前回の最後のソートキーより大きな100件」を取得すればいいんでない?

63 :NAME IS NULL:2016/08/14(日) 03:22:54.54 ID:???.net
>>62
すいません、ソートキーというのはORDER BYで指定するカラムですよね。
そのカラムの値がユニークではないので、その値で判定できないんです。
このようなイメージです。

〜 ORDER BY score;

score
--------
2500
2800
3000
3000
3000
3400

例えばこれで3件ずつ取得するためにLIMIT 3を付けた場合、3000のスコアの途中まで取得されるので、
WHERE > 3000というような形で指定できないのです。

64 :NAME IS NULL:2016/08/14(日) 06:01:16.47 ID:???.net
テンポラリテーブル作って検索結果突っ込んでおくとか
主キーだけでも

65 :NAME IS NULL:2016/08/14(日) 07:47:45.50 ID:???.net
>>61
続きを取得している間はトランザクションは開きっぱなしなのか?
更新されても結果が変化しないのが条件なら
開きっぱなし or 全行を一時保管しておく必須がある

トランザクションを切るなら並行する更新結果も見えてしまうが
更新によって主キーとソートキーが変わらないならば
「欲しいソートキー + 主キー」を条件にすればいい
ORDER BY score, pkey WHERE score >= 前回のscore AND pkey > 前回のpkey

66 :NAME IS NULL:2016/08/14(日) 09:02:39.41 ID:???.net
実はユニークな主キーもないとか言い出したりして。

67 :NAME IS NULL:2016/08/15(月) 07:13:36.14 ID:???.net
うぎゃ

68 :NAME IS NULL:2016/09/04(日) 22:19:47.07 ID:???.net
次のバージョンって10になるのん?

69 :NAME IS NULL:2016/09/06(火) 00:48:17.74 ID:???.net
>>68
9.6

70 :NAME IS NULL:2016/09/11(日) 05:22:55.47 ID:???.net
どうしてPostgreSQLはMySQLに勝てたのか

71 :NAME IS NULL:2016/09/16(金) 04:50:18.57 ID:???.net
>>63
score が 3000 であるレコード同士の順番をどうにかして決めておかないとだめだよ。

> 例えば、続きの100件を取得する際、スキップする最初の100件の中に新たなレコードが1件増えると、
> 最初の100件取得した際の100件目のレコードと、続きの101件目のレコードは同じものになります。
これを嫌うということは、最新のデータが表示されない可能性があるけれど、それはそれでいいってことかな

72 :NAME IS NULL:2016/09/16(金) 13:33:25.57 ID:???.net
>>61
> 最初の100件取得した際の100件目のレコードと、続きの101件目のレコードは同じものになります。
逆にそっちの方がいいかもよ。

仮に、scoreの降順でデータを取得するとする。
最初の検索時は350件あって、データの変更がなければ4ページ。
最初は1位5000点)〜100位(4000点)が表示される。

で、その表示中に、4001〜4999点に10人追加されたとする。
その結果、旧91〜100が101〜110位になる。

そのとき、「次」を見たときどうなってるのが良いか?
・旧101〜200位が表示される
・新101〜200位が表示される

今は、こうあるべきだと思っている。
> ・旧101〜200位が表示される
考えて欲しいのは、そこで「前」を見たらどうなっているべきか。
また、新たに追加された10人はいつどのようにすれば見られるのか。

73 :NAME IS NULL:2016/09/16(金) 14:14:33.88 ID:???.net
1か月も前のレスなのに急にどうした

74 :NAME IS NULL:2016/09/16(金) 14:54:50.86 ID:???.net
直近のコメントが今日だったから、最近の話題かと勘違いしたわ

75 :NAME IS NULL:2016/09/17(土) 23:30:54.93 ID:???.net
>>70
実際に勝ってるかどうかは知らないけど、もし勝つとしたら商用無料のせいだろ

76 :NAME IS NULL:2016/09/18(日) 00:08:28.31 ID:???.net
MySQLだって無料で商用に使えるが。

77 :NAME IS NULL:2016/09/18(日) 00:15:45.94 ID:???.net
実際のデータがわからんからなんとも

78 :NAME IS NULL:2016/09/18(日) 00:36:42.83 ID:eQBFaRs8.net
MySQLってまだあるの?

79 :NAME IS NULL:2016/09/18(日) 20:47:05.35 ID:???.net
>>78
冗談にしてはパンチが足りない

80 :NAME IS NULL:2016/09/18(日) 23:51:08.89 ID:???.net
MySQLってマラあるの?

81 :NAME IS NULL:2016/09/18(日) 23:53:40.22 ID:???.net
>>78
まいしーくぅえる

82 :NAME IS NULL:2016/09/18(日) 23:55:26.41 ID:???.net
>>80
ねえよ

83 :NAME IS NULL:2016/09/19(月) 00:40:19.70 ID:???.net
まらぁ?

84 :NAME IS NULL:2016/09/19(月) 11:36:37.41 ID:???.net
ドゥーユーリーメンバー

85 :NAME IS NULL:2016/09/19(月) 19:01:18.26 ID:???.net
トゥエニファスタァイ セプテンバー

86 :NAME IS NULL:2016/09/19(月) 19:53:19.48 ID:???.net
セプテンバーレイン

87 :NAME IS NULL:2016/09/20(火) 09:13:48.38 ID:???.net
9月のあめーはつめたくて〜

88 :NAME IS NULL:2016/09/20(火) 11:13:36.53 ID:???.net
稲垣吾郎?

89 :NAME IS NULL:2016/09/22(木) 00:47:57.06 ID:???.net
MySQLと比べるなら、機能的に圧勝してるから比べ物にならないでしょ
PostgreSQLが勝ったというよりは、MySQLが選択肢に入ってなかっただけ
普段からPostgreSQLを使ってるとこは、わざわざMySQLを習得するコストがもったいないから
MySQLをさける傾向がある

90 :NAME IS NULL:2016/09/22(木) 02:23:39.42 ID:???.net
やってる人はやってるんだろうし、ご勝手にって感じかな。
もう気にかけることも無くなったね。

91 :NAME IS NULL:2016/09/22(木) 08:05:39.47 ID:???.net
10年前は熱いライバルだったのに

92 :NAME IS NULL:2016/09/22(木) 08:34:13.73 ID:???.net
比べるなら相手はMariaじゃないの?
もしくはローエンドOracleか

93 :NAME IS NULL:2016/09/22(木) 14:05:12.63 ID:???.net
レンタルサーバで使える所少なかったり
CMSとかで対応してないとかあるからなー
そういう場面ではMySQL選ばざるを得ない

94 :NAME IS NULL:2016/09/22(木) 20:36:09.66 ID:???.net
え?
PostgreSQLって流行ってるの?
もう廃れてきているのかと思った
どこの記事見ても、MySQLとかMariaDBとかばっかりだもんな

95 :NAME IS NULL:2016/09/22(木) 20:54:32.74 ID:???.net


96 :NAME IS NULL:2016/09/22(木) 21:40:30.81 ID:???.net
C++のような存在

97 :NAME IS NULL:2016/09/22(木) 21:42:08.83 ID:???.net
postgresql はC
MySQL は C++

98 :NAME IS NULL:2016/09/22(木) 21:56:20.47 ID:???.net
いわゆるWeb系はMySQL系
基幹業務にOracleを使う金がないとこはPostgreSQL
ベンチャー企業が中小相手にシステム構築するときに使う

MySQL系の記事が多いのは最近やっと使えるようになってきたからだよ
AWSの影響もあるだろうしな

言語に例えるんだったらPostgreSQLはVBやPHPで
MySQLはJavascriptのイメージだな

99 :NAME IS NULL:2016/09/22(木) 22:00:36.32 ID:???.net
ほー 詳しい

100 :NAME IS NULL:2016/09/22(木) 22:18:22.64 ID:???.net
VBやPHPに例えられても嬉しくないなぁ
レンタルサーバで使えない問題は Heroku Postgres で多少はマシになったか

101 :NAME IS NULL:2016/09/22(木) 22:26:33.29 ID:???.net
アメリカなんかじゃ昔からMySQLの方が人気があって、Postgresが人気あるのは日本くらい。

102 :NAME IS NULL:2016/09/22(木) 22:34:28.71 ID:???.net
って前から言われてたね。今のそうなのですか。

103 :NAME IS NULL:2016/09/22(木) 22:41:28.32 ID:jDvr07Zs.net
アメリカ人はバカだからMyISAM速えええええええええつって喜んでただけやで
それもずいぶん昔の話やw

104 :NAME IS NULL:2016/09/22(木) 22:49:04.78 ID:???.net
ひどすw

105 :NAME IS NULL:2016/09/22(木) 22:51:40.38 ID:???.net
一説にはWindowsで動かせたからとも言われてるな。
日本でフリーDBMSが導入され始めた頃はPostgres7.0が出る頃だったから
MySQLじゃなくてトランザクションをまともに使えるPostgresの方に流れたとも。
ヒゲががんばって布教したってのもあるんだろうけど。

106 :NAME IS NULL:2016/09/22(木) 23:00:42.22 ID:???.net
最新の研究成果をいち早く採り入れている方が好き

107 :NAME IS NULL:2016/09/22(木) 23:37:58.79 ID:???.net
まぁ 普通の開発者、ユーザーから見れば普通に使えれば
それほど最新技術はなくてもぉ とは思うんじゃないの?

108 :NAME IS NULL:2016/09/22(木) 23:41:17.54 ID:???.net
PostgreSQL使い始めた頃はMySQLはサブクエリ使えなかったからなあ

109 :NAME IS NULL:2016/09/23(金) 00:54:00.00 ID:???.net
MySQLはデータベースとして当然備えてる機能を備えてないんだよ
商用データベースから来た人にはおもちゃにすら見えない

110 :NAME IS NULL:2016/09/23(金) 00:59:28.51 ID:???.net
そうなんですか ほんとに知らない

111 :NAME IS NULL:2016/09/23(金) 01:18:36.39 ID:???.net
UberがPostgreSQLからMySQLへ移行した経緯の記事と
それへの反論は興味深かった

112 :NAME IS NULL:2016/09/23(金) 17:15:06.11 ID:???.net
俺のとこではmaxでも10リクエスト/sec程度なんで、あんま参考にはならなかったな

113 :NAME IS NULL:2016/09/25(日) 16:30:18.30 ID:???.net
いままでPostgreSQLで、ごく最近Oracle使い始めたけど、
Oracleって糞だなって思うこと多い。
Oracleをよく知らないせいだとは思うけど。


業務系、Webシステムなどでは、PostgreSQLで何も問題なし!

114 :NAME IS NULL:2016/09/25(日) 20:40:24.75 ID:???.net
普通に使う分はもちろん、バックアップもフェールセーフも問題ないよね。
マテリアライズドビューなんて使った事もないし。

115 :NAME IS NULL:2016/09/25(日) 21:07:28.83 ID:???.net
だからボラクルはサポートで金とってんだっつってんだろ

116 :NAME IS NULL:2016/09/25(日) 22:27:52.99 ID:???.net
>>113
最近は差を詰めてきてるよね
とはいえ大規模になればまだまだOracle

>>114
PostgreSQLにも一応マテリアライズドビューあるでしょ

>>115
金払わないとパッチすらくれず、払っててもバグ修正してくれないけどな

117 :NAME IS NULL:2016/09/25(日) 22:57:09.20 ID:???.net
>>116
>金払わないとパッチすらくれず、払っててもバグ修正してくれないけどな
何その塩対応

118 :NAME IS NULL:2016/09/25(日) 23:09:26.67 ID:???.net
>>116
ポスグレのそれを使った事ないって意味ですよ。
Orackeの現場では頻繁に聞こえますね。でも結構トラブッてるようなw

119 :NAME IS NULL:2016/09/26(月) 09:58:44.35 ID:???.net
バグが修正されてユーザのコードが動かなくなったとき
危険なコードを書くのが悪いと言われるのがPostgres
専用の互換性パッチの見積もりをくれるのがOracle

120 :NAME IS NULL:2016/09/26(月) 13:15:18.18 ID:???.net
それわそれわ

121 :NAME IS NULL:2016/09/27(火) 00:46:01.86 ID:???.net
>>119
なるほど
ボラクル体質をとても明快に理解できた
そんでもってどっちがまともかは言わずもがなだな

122 :NAME IS NULL:2016/09/27(火) 00:59:38.02 ID:???.net
バージョンあがって動かなくなるなら、バージョンあげないだけだよ
そもそも特に困ってないのにバージョンあげるわけないだろう
ミドルウェアのバージョンが変わるなんて、5年ごとのリプレースだけだよ

123 :NAME IS NULL:2016/09/27(火) 01:21:18.54 ID:???.net
そのバグ修正の内容がセキュリティ脆弱性の改善でなければな

124 :NAME IS NULL:2016/09/27(火) 01:50:31.29 ID:???.net
データベースサーバにセキュリティパッチあてるわけないだろ

125 :NAME IS NULL:2016/09/27(火) 01:51:51.31 ID:???.net
??

126 :NAME IS NULL:2016/09/27(火) 02:25:22.67 ID:???.net
きっと軽い間違いでしょう

127 :NAME IS NULL:2016/09/27(火) 10:22:52.91 ID:???.net
(データベースサーバはインターネッツに公開なんかしないんだから、セキュリティパッチあてる必要もないだろ)
ということかな

128 :NAME IS NULL:2016/09/27(火) 14:56:40.91 ID:???.net
そんなパッチがあるなら、やるだけの事かと。

129 :NAME IS NULL:2016/09/27(火) 17:15:32.78 ID:???.net
はぁ?

130 :NAME IS NULL:2016/09/27(火) 17:26:54.96 ID:???.net
OSのパッチなのかRDBMSのパッチなのかでもかわってくるw

131 :NAME IS NULL:2016/09/27(火) 18:24:19.86 ID:???.net
この流れでOSパッチとかアホ過ぎやろ

132 :NAME IS NULL:2016/09/27(火) 20:22:40.29 ID:???.net
だからパッチなんてあるんかい

133 :NAME IS NULL:2016/09/28(水) 00:07:46.01 ID:???.net
はぁああ?

134 :NAME IS NULL:2016/09/28(水) 00:10:30.52 ID:???.net
おまえらPostgreSQLにセキュリティのためにパッチなんて当てたことあるの?
UPSERT使いたいからバージョンあげるとかだったらあるかもだけど
セキュリティなんて考えたこともない

135 :NAME IS NULL:2016/09/28(水) 00:31:52.94 ID:???.net
いつまで不毛な争いをしているのだ

136 :NAME IS NULL:2016/09/29(木) 00:05:22.86 ID:???.net
毛とNULLは無いほうがいいって聞いたことがある

137 :NAME IS NULL:2016/09/29(木) 00:45:43.04 ID:???.net
だれがハゲだと たここら

138 :NAME IS NULL:2016/09/29(木) 00:52:51.97 ID:???.net
coalesce(頭髪, 植毛)

139 :NAME IS NULL:2016/09/30(金) 06:43:56.77 ID:x8uGj0c5.net
PostgreSQL 9.6 Released!
https://www.postgresql.org/
https://www.postgresql.org/about/news/1703/

140 :NAME IS NULL:2016/09/30(金) 10:50:27.58 ID:???.net
ついに9.6かぁ。
もうついていけないw

141 :NAME IS NULL:2016/09/30(金) 11:22:57.45 ID:???.net
>>139
・パラレルクエリ
・同期レプリケーション / シャーディング (postgres_fdw)
・全文テキスト検索 (たぶん日本語はダメ)
って感じ?
結構なパワフルユーザ向けだな。まぁ基本はやり尽くしているんだろうけど

142 :NAME IS NULL:2016/09/30(金) 13:19:14.81 ID:???.net
カンファレンスはまた盛況になりそうですね

143 :NAME IS NULL:2016/09/30(金) 22:43:32.29 ID:???.net
どうしてPostgreSQLって本屋さんに本が全然ないんですか?
MySQLはたくさんあるのに

144 :NAME IS NULL:2016/09/30(金) 22:50:14.83 ID:???.net
本が出る頃に改版するためじゃない?

145 :NAME IS NULL:2016/10/01(土) 00:29:42.91 ID:???.net
最新のシーラカンス本の対応バージョンは8くらいだったっけ?

146 :NAME IS NULL:2016/10/01(土) 00:34:28.90 ID:???.net
CTEやCONFLICTについてがっつり書いてるような本が欲しい

147 :NAME IS NULL:2016/10/01(土) 00:52:05.59 ID:???.net
となるとやっぱ最新マニュアルしかないわなぁw
そこそこ良く書けてるしわかり易いと思う。

148 :NAME IS NULL:2016/10/06(木) 01:01:59.37 ID:???.net
おすすめの記事ってどこかある?
ブロガーさんやニュースサイトでも何でも
PostgreSQLについて情報が集まるようなとこ探してる

149 :NAME IS NULL:2016/10/06(木) 02:54:12.82 ID:???.net
http://lets.postgresql.jp/

150 :NAME IS NULL:2016/10/06(木) 05:53:59.59 ID:???.net
Let'sは最近、更新サボってるからなあ・・・

151 :NAME IS NULL:2016/10/06(木) 06:42:02.86 ID:???.net
https://www.sraoss.co.jp/technology/postgresql/

152 :NAME IS NULL:2016/10/06(木) 08:21:09.55 ID:???.net
さあ、みんな今こそ売り込みの絶好のタイミング
自社のURLを貼るんだ

153 :NAME IS NULL:2016/10/06(木) 11:37:02.77 ID:???.net
宣伝でもいいよ

154 :NAME IS NULL:2016/10/14(金) 01:20:43.16 ID:???.net
pgAdmin4の日本語化ってどうやるの?

155 :NAME IS NULL:2016/10/17(月) 22:11:27.19 ID:Xu2/z0cZ.net
エセ左翼の目的は、わざと突っ込みどころが多い主張をすることで自分たちへ注意を向けさせ、
カルトへ向かう非難の矛先を逸らすこと。
国益に反することを言ったり、主張が食い違うもの同士の対立を煽ろうとするので放置し難いが、
主義思想についての洗脳を受けているわけではなく、フリをしているだけなので、
言い負かされてもダメージを負った様子もなく、論点をすり替えられるかスルーされる。
まともに相手をしてはならない。

156 :NAME IS NULL:2016/10/18(火) 05:08:12.81 ID:???.net
pgAdmin3 は日本語で使ってるとなんかのコマンドが日本語で流れてエラーになった記憶があるので、それ以来ずっと英語で使ってる

157 :NAME IS NULL:2016/11/22(火) 21:21:59.14 ID:???.net
話題は?

158 :NAME IS NULL:2016/11/23(水) 05:33:07.01 ID:???.net
来週末のPGConf.Asia、みんなは行くかい?
http://www.pgconf.asia/JP/

159 :NAME IS NULL:2016/11/23(水) 13:04:20.36 ID:???.net
なんだかんだ満員でしょう

160 :NAME IS NULL:2016/11/23(水) 16:40:12.30 ID:???.net
まだ昨日時点ではチケットは残っているっぽかった。

161 :NAME IS NULL:2016/12/04(日) 11:34:50.98 ID:???.net
話題は?

162 :NAME IS NULL:2016/12/10(土) 00:05:22.08 ID:???.net
PostgreSQLって、OrderByを書かないと・・・・
毎回違う並び順になるの?
それとも、PrimaryKey順になるの?

163 :NAME IS NULL:2016/12/10(土) 00:44:27.79 ID:???.net
>>162
書けば良い

164 :NAME IS NULL:2016/12/10(土) 01:56:45.87 ID:???.net
不定だわな。たとえ何かの順に並んでたとしても信用出来ない。

165 :NAME IS NULL:2016/12/10(土) 04:55:25.07 ID:???.net
>>162
一々ソーティングしなくていいから少しでも速く、省メモリで結果返して欲しいって時に勝手にソーティングされたら寧ろ迷惑だと思わないかい?
ソーティングは通常ではなくオプションとすべきだ

166 :NAME IS NULL:2016/12/10(土) 07:56:41.23 ID:???.net
なんという的外れな観点

167 :NAME IS NULL:2016/12/10(土) 08:30:07.22 ID:???.net
せやろか

168 :NAME IS NULL:2016/12/10(土) 16:50:14.90 ID:???.net
lsで何が返るかみたいなもんやないやろか

169 :NAME IS NULL:2016/12/10(土) 17:06:12.87 ID:???.net
>>166
しょうゆうな

170 :NAME IS NULL:2016/12/12(月) 13:42:28.85 ID:???.net
不定だけど、大体はINSERTした順になることが多い
UPDATEしたりするとそれが最後になったりするので
id順とはいえない
もちろん出てくる順番を当てにしちゃいけないw

171 :NAME IS NULL:2016/12/12(月) 22:30:45.27 ID:???.net
で、なんでそんな物理的事情で並んだ順で返すのかって言ったら、『一々ソーティングしなくていいから少しでも速く、省メモリで結果返して欲しいって時に勝手にソーティングされたら寧ろ迷惑だろ、ソーティングは通常ではなくオプションとすべきだ』ってことでないの?

172 :NAME IS NULL:2016/12/12(月) 23:26:20.67 ID:???.net
のはずですが

173 :NAME IS NULL:2016/12/13(火) 08:19:35.95 ID:???.net
>>170
クラスタ化インデックスだとpk順になる。

174 :NAME IS NULL:2017/01/29(日) 10:18:17.47 ID:60pB1fs/.net
>>170
そんなのどんなRDBMSでも同じで、実装を考えれば、そうなるだろうが。

175 :NAME IS NULL:2017/01/29(日) 10:20:19.64 ID:60pB1fs/.net
>>171
違う。RDBのレコードはソート指定をしないかぎり不定というのが標準SQLでの仕様だから。

176 :NAME IS NULL:2017/01/29(日) 10:37:46.86 ID:???.net
PHP+PostgreSQLで運用する場合、元号の処理ってどうしてる?
自分でしか使わないシステムなので、極力西暦で通すか、どうしても必要な場合は1988引いてるけど(基本的に昭和のデータは扱わない)、今度の改元がなぁ

177 :NAME IS NULL:2017/01/29(日) 11:01:42.79 ID:60pB1fs/.net
>>176
データベースだというのに西暦→和暦マスタテーブルを作ろうという発想がないことに驚く

178 :NAME IS NULL:2017/01/29(日) 11:05:32.41 ID:???.net
>>176
昭和99年とかの特殊な要件がなければ内部は西暦、外部とのやり取り時に変換が普通かと

179 :NAME IS NULL:2017/01/29(日) 12:10:35.54 ID:???.net
>>176
表示なり入力なりエンドユーザに一番近いところで変換したいな
そもそも元号という「汚い」ものを可能な限り扱いたくないし、
Postgres用の変換はおそらく自作が必要だが、PHPやJS用なら適当に拾ってこれるから

180 :NAME IS NULL:2017/01/29(日) 12:20:13.52 ID:???.net
>>177
マスタテーブルだけで変換しようとすると、年の途中での改元に対応しないといけないんで、1日あたり1レコード要るんじゃね?
100年で36,525か36,524になっちゃう

181 :NAME IS NULL:2017/01/29(日) 12:46:11.29 ID:???.net
関数でいい

182 :NAME IS NULL:2017/01/29(日) 13:32:09.18 ID:60pB1fs/.net
>>180
アホくさ。なんで年号が変わらない部分の日の単位でデータを持つんだよ。

それじゃあ自分の生年月日を書くのに今日からさかのぼって一日ごとに列挙して書くようなもんだろw

183 :NAME IS NULL:2017/01/29(日) 15:26:01.88 ID:???.net
明治:1868-01-25 〜 1912-07-29
大正:1912-07-30 〜 1926-12-24
昭和:1926-12-25 〜 1989-01-07
平成:1989-01-08 〜
これをどうUIに反映するかは、各自の考え方だろう。

184 :NAME IS NULL:2017/01/30(月) 10:51:23.93 ID:tcdzx+zX.net
https://www.youtube.com/watch?v=quIHgwuF6r4&sns=em

185 :NAME IS NULL:2017/02/01(水) 10:22:49.54 ID:wkr1HydS.net
https://www.youtube.com/watch?v=quIHgwuF6r4&sns=em

186 :NAME IS NULL:2017/02/01(水) 14:47:49.81 ID:4qKxf55o.net
インデックスについて教えてください。
調べましたが「検索が早くなる場合もあるらしい」くらいしか分かりませんでした。

・ インデックスは作成するだけでよいのか?
   検索時に作成したインデックスを指定したりしなくてよいのか。
   調べた限り指定する方法がなかったため、作成するだけで効果があるように見えた。

・ REINDEXでのロック時の挙動
   インデックスがロックされると聞いた。
   インデックスがロックされるだけで検索自体は可能なのか。

・ とりあえずインデックスを作成しておけばよいのか?
   インデックスがそんなに便利なものなら、ハードディスクの容量が許す限り、
   検索しそうなものは片っ端からインデックスを作成しておけばよいのか。

187 :NAME IS NULL:2017/02/01(水) 15:20:55.01 ID:???.net
>>186
> ・ インデックスは作成するだけでよいのか?
はい。

インデックスを使った方が検索コストが低い場合は、自動的に使われます。

> ・ REINDEXでのロック時の挙動
>    インデックスがロックされるだけで検索自体は可能なのか。
いいえ。検索もブロックされます。

通常はreindexする必要はありません。
将来、reindexが必要だと感じたら(容量が増大したなどの場合)、どう対処するのが
良いか検索するとよいです。

> ・ とりあえずインデックスを作成しておけばよいのか?
いいえ。

インデックスがあるということは、INSERT/DELETEのときにデータ本体だけでなく
インデックスそのものも更新する必要があります。
単純に言えば、処理時間が増えるということです。
不要なインデックスは生成しないようにするのが良いです。

188 :186:2017/02/01(水) 15:43:28.39 ID:???.net
>187
ありがとうございます。
助かります。

189 :NAME IS NULL:2017/02/01(水) 18:30:22.45 ID:ndjPxyEX.net
ポスグレにかぎらない初心者の質問が多いな。

190 :NAME IS NULL:2017/02/02(木) 17:57:30.34 ID:???.net
日本語扱うならencodeはCだろって言う人を結構見る気がしますが、なぜutf8じゃ駄目なんでしょうか?

191 :190:2017/02/02(木) 18:00:09.42 ID:???.net
例えばこの人

http://soudai1025.blogspot.jp/2015/03/postgresqlunicode-6.html
> なお、検証した環境のPostgreSQLのlocale指定はC(nolocale)としています。
> (日本語を扱う場合はほとんどの場合はCを指定するでしょうし)

192 :NAME IS NULL:2017/02/02(木) 18:41:25.46 ID:???.net
えっ・・・
今まで作ったシステム、全部utf8にしてきてしもうた・・・

193 :NAME IS NULL:2017/02/02(木) 19:10:07.87 ID:???.net
encodeとlocaleは別だぞ。
encode=utf8 かつ locale=C が推奨なのはよく見る。

Linux (glibc) はlocaleの実装をサボっているので、C以外に設定しても性能が落ちるだけで何の利点もない。
Windowsなら文字列の比較やソートに差が出るので、用途に適して選べばいい。

194 :NAME IS NULL:2017/02/02(木) 22:45:30.91 ID:???.net
initdb --encoding=UTF8 --no-locale ←これが基本かなと

195 :NAME IS NULL:2017/02/03(金) 08:35:26.68 ID:kkoWZhIO.net
https://www.youtube.com/watch?v=quIHgwuF6r4&sns=em

196 :NAME IS NULL:2017/02/03(金) 14:49:30.55 ID:???.net
>>193
Linuxでも当然ながら差が出る。
なぜなら、文字コードは辞書順には並んでないから。

197 :NAME IS NULL:2017/02/03(金) 15:00:11.71 ID:JY8XYZfi.net
>>196
どんな文字コードでも漢字の並び順は、日本人が見ても意味のある順番になってないからな。

198 :NAME IS NULL:2017/02/03(金) 15:45:41.80 ID:???.net
>>196
Linuxもまともになったのか?
昔使ったときはlocale=ja系でも変わらず文字コード順に並べられたんだが

199 :NAME IS NULL:2017/02/03(金) 16:06:32.65 ID:???.net
>>198
「辞書順」の正しい定義を知らないけど、少なくとも文字コード順には並ばないよ。

create table foo(s text)に、漢数字の'一'から'九'をインサートし、以下のクエリを実行。
select array_agg(s) from (select s from foo order by s) as t;

locale=C -> {一,七,三,九,二,五,八,六,四} -- 文字コード順
locale=ja_JP.UTF-8 -> {一,九,五,三,四,七,二,八,六} -- 辞書(?)順

200 :NAME IS NULL:2017/02/03(金) 16:35:10.23 ID:???.net
文字コード順でも辞書順でも、それを正解とするかどうかは要件次第。
ちなみに漢数字は、訓読み順で並んでいる。

201 :NAME IS NULL:2017/02/03(金) 16:45:47.54 ID:???.net
>>199
理解した。Linuxでも順序は変わるね。
ひらがな/カタカナの濁/半濁の扱いは今でも差があるようだ。設計思想?互換性?
 msvcrt: ハはバばパぱ
 glibc : はばぱハバパ

環境依存が怖い。要件次第だが、自前で「ふりがな」列を用意したほうがマシだな。

202 :NAME IS NULL:2017/02/03(金) 17:27:01.91 ID:???.net
日本語ヤバイ

203 :NAME IS NULL:2017/03/21(火) 17:08:09.19 ID:???.net
他人に公開する予定の無い、自分専用のwebサイトを作る場合でもSQLインジェクション対策はしておいた方がいいよね?
クラスを転用するときに問題になるし、悪意が無くてもエラーのもとだし

204 :NAME IS NULL:2017/03/21(火) 17:45:20.99 ID:???.net
おお 久々
3.19行った人いないの?

205 :NAME IS NULL:2017/03/21(火) 19:35:41.10 ID:???.net
>>203
言語によるけど今時パラメータクエリぐらいは使えるだろうから普通にパラメータクエリでやるわな
あとから見てもその方がわかりやすいし

206 :NAME IS NULL:2017/03/21(火) 20:16:56.50 ID:???.net
>>205
PHPで言えば、pg_query_params()とか?

207 :NAME IS NULL:2017/03/21(火) 21:01:55.15 ID:NIvfjcd/.net
phpって対策されていないやつ
非推奨じゃなかったっけ

おいらはPDOでやってるかな

208 :NAME IS NULL:2017/03/21(火) 21:25:31.53 ID:???.net
>>203
やらないで

209 :NAME IS NULL:2017/03/22(水) 00:21:47.00 ID:???.net
ぽすとぐれすきゅーえる
ぽすとぐれすえすきゅーえる

210 :NAME IS NULL:2017/05/10(水) 00:41:30.16 ID:Yh/Qr3SR.net
TIMESTAMP (WITHOUT TIMEZONE)とCURRENT_TIMESTAMPについて教えてください。
INSERTにてCURRENT_TIMESTAMPで入れたあと、SELECTで取り出すと日本時間になっています。
どの時点で日本時間になっているのでしょうか?

1. CURRENT_TIMESTAMPの時点ではJSTだが、INSERTするときにJSTがUTCに変換されて保存され、
  SELECTで取り出すときにシステムの時刻を見て+0900されている
2. CURRENT_TIMESTAMPの時点ではJSTで取得されるが、
  元々これにタイムゾーンのデータはなく、そのまま保存され、
  SELECTで取り出すときは同じシステム時刻を使ってるからたまたま同じタイムゾーンとして取得されている
3. CURRENT_TIMESTAMPの時点ではUTCで取得され、保存もUTCだが
  SELECTで取り出すときはシステム時刻を参照して勝手にJSTにしている
4. その他の未知の仕組み

211 :NAME IS NULL:2017/05/10(水) 07:47:06.12 ID:???.net
>>210
http://www.postgresql.jp/document/current/html/datatype-datetime.html
> 通常timestamp without time zoneの値はtimezoneのローカル時間としてみなされる
とあるから、言葉通りだとするなら:
・INSERTするときに時刻の値だけを保存する (+0900を無視)
・SELECTするときに現在のタイムゾーン扱い (+0900を追加)
SET TIMEZONE TOしながら試してみれば検証できるかも

212 :NAME IS NULL:2017/05/12(金) 18:06:02.05 ID:???.net
>>210
まず前提として、without time zoneをselectした結果にはtime zone情報はないのだから、UTCもJSTもない。
次にcurrent_timestampは、tz情報付きのデータ。
それをwithout time zone絡むにインサートすると、tz情報は切り捨てられる。(たとえば、"2017-05-12 18:00:00")

そのデータを、日本で取得しようがアメリカで取得しようが、tz情報なしの"2017-05-12 18:00:00"が取得される。
つまり、アメリカで取得した人は、現地時間の"2017-05-12 18:00:00"だと見えるということ。

213 :210:2017/05/12(金) 23:59:44.61 ID:???.net
>>211-212
ありがとうございます。
世界向けのSNSを作ろうとしたのですが、これがネックで
時間部分の設計ができない状態でした。
助かります。

214 :NAME IS NULL:2017/05/14(日) 15:53:45.17 ID:???.net
お世話になります。

psql で database ごとに history を分けて表示したい (\s) のですが、
(他の databae の history を表示したくない)
どうやったらいいのでしょうか?

よろしくお願いします。

215 :NAME IS NULL:2017/05/14(日) 16:12:10.64 ID:???.net
historyって、homeの .psql_history 出してるだけだからなあ
db切り替えるたびにリネームするとか?

216 :NAME IS NULL:2017/05/14(日) 20:12:51.97 ID:???.net
ああ、そういう仕組みなんですね。
複数の database をそれぞれ別々に psql で開いたりしてるんですけど、じゃぁ、全然無理ですね。
わかりました、ありがとうございました。

217 :NAME IS NULL:2017/05/14(日) 23:48:56.29 ID:???.net
どうよ?
https://www.commandprompt.com/blog/psql_tip_change_history_location/

218 :NAME IS NULL:2017/05/15(月) 22:58:52.98 ID:???.net
>>217
そのものズバリですね♪
ありがとうございます。
おかげで、.psqlrc っていう設定ファイルのことも知りました。
PostgreSQL の Documentation にありますね。
かさねがさねありがとうございました。

219 :NAME IS NULL:2017/06/09(金) 23:25:23.53 ID:???.net
拡張を使った場合、メジャーバージョンが変わるときのアップグレードで使えなくなったり作業が増えたりするのでしょうか?
スキーマのバージョンが変わっている拡張があったら何かしないといけないとか?

220 :NAME IS NULL:2017/06/10(土) 15:00:08.80 ID:jh8YfBo0.net
そこまでわかったいたら随時チェックしたほうがいい

221 :NAME IS NULL:2017/06/14(水) 00:49:31.73 ID:???.net
30分単位とかで時間を丸めてくれる関数ないですか

222 :NAME IS NULL:2017/06/14(水) 02:30:34.88 ID:???.net
ないんじゃないかな

223 :NAME IS NULL:2017/06/14(水) 11:05:12.90 ID:???.net
>>221
> 30分単位とかで時間を丸めてくれる関数ないですか
自作すれば?

224 :NAME IS NULL:2017/06/14(水) 11:25:06.19 ID:???.net
トリガのデバッグってどうやってますか?
初めてトリガ関数作ります

225 :NAME IS NULL:2017/06/14(水) 11:27:34.06 ID:???.net
>>224
普通に、クエリ後、関連データを取得してassert

226 :NAME IS NULL:2017/06/14(水) 11:36:05.69 ID:???.net
>>225
ASSERT文、調べました。
そういうのがあるんですね♪
ありがとうございました

227 :NAME IS NULL:2017/06/14(水) 13:45:01.50 ID:???.net
>>226
たぶん勘違いしてる
クライアントコードを実装する、JavaとかPHPとかのプログラミング言語で普通にチェックしろってこと
IDEでステップ実行とかできないからね

228 :NAME IS NULL:2017/06/14(水) 16:42:17.71 ID:???.net
>>227
> クライアントコードを実装する、JavaとかPHPとかのプログラミング言語で普通にチェックしろってこと
そうなの?
それなら俺も勘違いしてたわ。

229 :NAME IS NULL:2017/06/14(水) 16:52:53.79 ID:???.net
ASSERTがどうのってのはPL/pgSQLの機能でしょ
https://www.postgresql.jp/document/current/html/plpgsql-errors-and-messages.html

トリガ関数をどの言語で作るかにもよるけど
たいていはサーバーログにメッセージを書き出す、いわゆるprintfデバッグになるのでは

230 :NAME IS NULL:2017/06/14(水) 17:40:45.85 ID:???.net
そう思う。自立型トランザクションを使えばログ表に対するcommitを必ずしながら
トリガー本来の処理ではrollback等もできる。多分10g以降の機能で9iでは不可。

231 :NAME IS NULL:2017/06/14(水) 17:51:09.39 ID:???.net
>>229
普通にデータベースにアクセスするメソッドをテストする方法と同じだよ。
確認する項目が、トリガーが変更したデータも対象になるってだけで。

普通にデータベースにアクセスするメソッドをテストするときもprintfデバッグしてたら、
トリガーのテストもそうなるだろうけど、普通はコードで確認するんじゃないか?

232 :230:2017/06/14(水) 17:57:11.64 ID:???.net
ゴメン。Oracleと勘違いしてた。>>230 は無視して

233 :NAME IS NULL:2017/06/14(水) 18:26:54.70 ID:???.net
>>231
トリガだと「普通のアクセス」とはデバッグ方法が違いそう、ってのが質問の意図じゃないの?
それを「同じだよ」で済ませるのは会話が噛み合っていない感がある

トリガの内部で何が起きているかのデバッグにはprintf程度しか道具が無いんじゃないかな?
トリガの結果が適切かを確認するにはテストコードを使うのはわかる

234 :NAME IS NULL:2017/06/14(水) 19:40:35.30 ID:???.net
日本語メッセージでGSSAPIがGSSAIになっちゃってるところがある

235 :NAME IS NULL:2017/06/15(木) 10:34:25.70 ID:???.net
>>233
> トリガの内部で何が起きているかのデバッグにはprintf程度しか道具が無いんじゃないかな?
内部が正しいと確信が持てるだけのテストをすればいいだけ。
てか、トリガーのコードじゃなくて、ホストプログラムのコードだってそうだろ?
まぁ、途中で変数の中身を見ないと、なにが行われているのかわかれないスキルレベルだったら話は違うが。

236 :NAME IS NULL:2017/06/15(木) 12:57:16.02 ID:???.net
>>235
ホワイトボックステストも知らないなら絡んでくるなよ

237 :NAME IS NULL:2017/06/15(木) 13:34:54.71 ID:???.net
>>236
いや、ホワイトボックステストの話をしてるつもりだが。

TDDはホワイトボックステストだが、やることは、
・前提条件を作る
・テスト対象のメソッドを呼ぶ
・結果を確認する
を、自分の確証が持てるまでやる。

トリガーをテストする場合も同じ。
トリガーをキックするメソッドを呼び出すか、あるいは直接INSERT/UPDATE/DELETEを実行し、
トリガーが変更した内容を、実際にデータを取得してassertする。

C0カバレッジで満足できるならそこでやめる。
確証が持てないなら、C1カバレッジになるようなテストを追加する。

238 :NAME IS NULL:2017/06/15(木) 14:01:14.73 ID:???.net
GUIでブレークポイント張ったりステップ実行させたりもできるようだね。
俺は使ったことないけど。

PL/pgSQLデバッガを使ってみよう
http://pgsqldeepdive.blogspot.jp/2013/05/plpgsqldebugger.html

PostgreSQLのPL/pgSQLのデバッガpldebuggerを使ってみる
http://qiita.com/sadapon2008/items/627d0649122628c115f6

git repository
https://git.postgresql.org/gitweb/?p=pldebugger.git;a=summary

239 :NAME IS NULL:2017/06/15(木) 14:12:51.09 ID:???.net
>>237
テストのやり方はそれでいいけど、テストが失敗してなおかつ原因がよくわからないときの話じゃないかな
そういうときは、raise noticeがやっぱり最強だと思う

240 :NAME IS NULL:2017/06/15(木) 18:22:46.73 ID:???.net
トリガーはいいとして、複雑なクエリのデバッグはどうやるつもりなんだろうか
それこそ、printfも使えない

241 :NAME IS NULL:2017/06/15(木) 18:48:03.58 ID:???.net
>>237
背伸びしすぎ

> TDDはホワイトボックステストだが
TDD の話なんて誰もしてない
最近知って話したくてしょうがないのか? w
そもそも TDD はコードを作る前にテストケースを作るからホワイトボックステストにはならない
むしろ仕様からテストケースを作るのでテストケースの作り方としてはブラックボックステストに近い

> ・前提条件を作る
> ・テスト対象のメソッドを呼ぶ
> ・結果を確認する
その前提条件の作り方の話だぞ
> を、自分の確証が持てるまでやる。
違う、ホワイトボックステストでは内部のコードを考慮してテスト条件を作るんだよ
それがわかってないから
> トリガーをキックするメソッドを呼び出すか、あるいは直接INSERT/UPDATE/DELETEを実行し、
> トリガーが変更した内容を、実際にデータを取得してassertする。
なんてアホなことを言い出す

242 :NAME IS NULL:2017/06/15(木) 21:33:54.87 ID:???.net
IPAのデータベーススペシャリスト持ってない奴は書き込むなよ

243 :NAME IS NULL:2017/06/15(木) 22:23:02.72 ID:???.net
このスレ的にはPostgreSQL CEだろう。

244 :NAME IS NULL:2017/06/16(金) 03:19:45.40 ID:CymGFRXo.net
デバッグしたいと言ってるやつの目的がわからない。

テストと混同しているみたいでやばそうだな。

245 :NAME IS NULL:2017/06/16(金) 10:33:58.83 ID:???.net
>>241
TDDのわかってない奴と議論しても時間の無駄なんで、これでも読んで。
https://ja.wikipedia.org/wiki/%E3%83%86%E3%82%B9%E3%83%88%E9%A7%86%E5%8B%95%E9%96%8B%E7%99%BA

> 違う、ホワイトボックステストでは内部のコードを考慮してテスト条件を作るんだよ
C0, C1カバレッジの意味わかってるか?
それを網羅しなければ自信がもてない場合は、それをカバーするテストを納得できるまで追加するんだよ。

246 :NAME IS NULL:2017/06/16(金) 10:41:33.48 ID:???.net
>>241
つか、お前、データベースアクセスを含むクラス・メソッドの単体レベルのテストはやってるのか?
やってるとしたら、どうやってんだ?

テストコード書いてるなら、トリガーがあろうとなかろうと関係ないことは自明だろ。

247 :NAME IS NULL:2017/06/16(金) 10:58:10.69 ID:???.net
plpgsqlは実行しないとtypoなんかがわからないので、c0必須

248 :NAME IS NULL:2017/06/16(金) 14:51:07.42 ID:???.net
>>247
これな
存在しないシンボル名使ってたら、CREATEでエラーにしてくれって話だ

249 :NAME IS NULL:2017/06/16(金) 15:21:01.24 ID:???.net
raise notice方法の良くないところは、リリース時にそれを削除する必要があること
トリガーをダンプしてバージョン管理とかしてると、ただそれだけでリビジョンが進む
そして、それを忘れやすい

250 :NAME IS NULL:2017/06/16(金) 18:08:22.77 ID:???.net
データベース内で完結するテスト方法は苦行なんで、
普通にプログラムからクエリを実行してテストしたほうがいいよ

251 :NAME IS NULL:2017/06/16(金) 21:41:16.11 ID:???.net
>>245
Wikipedia なんて底が浅すぎ w
コードを見てテストケースを作るなんて書いてないだろ?
C0, C1 は結果の話
根本的に理解してないのがバレバレだぞ w

>>246
それトリガーの話じゃないだろ
まあ必死だな、ってだけ言っとくよ w

252 :NAME IS NULL:2017/06/17(土) 00:34:00.10 ID:fomvc+Ad.net
>>250


253 :NAME IS NULL:2017/06/17(土) 00:36:50.28 ID:???.net
>>252
あ、「クエリを発行して」の言いまちがいね

254 :NAME IS NULL:2017/06/17(土) 19:19:51.37 ID:v6f8+KaI.net
>>253
発行も実行も普通は同じ意味で使われる。

255 :NAME IS NULL:2017/06/17(土) 19:22:53.96 ID:v6f8+KaI.net
データベースに詳しくないのが、何かの言語と結合してテストするようなのとを言ってるけど、それおかしいから。

データベース軽視なんだろうな。

256 :NAME IS NULL:2017/06/17(土) 19:34:20.46 ID:v6f8+KaI.net
もともとトリガのテストがしたいという話だが、トリガとトリガが呼び出す関数をいきなり一緒にテストしようとしているのが間違い。

関数は関数でテストして、トリガはトリガがテストして、結合テストはデータのIN/OUTで確認すればいいだけ。

データ観点のテストをあまりしないやつらはかなりいるが、とんでもないから無視した方がいい。

257 :NAME IS NULL:2017/06/17(土) 20:14:16.34 ID:???.net
トリガープロシージャって普通の関数として単体で実行できるんだっけ?
やったことないけど、OLDとかNEWとかどう与えるんだろう。

258 :NAME IS NULL:2017/06/17(土) 22:29:56.38 ID:fomvc+Ad.net
>>257
Oracleのトリガーと混同してたわ。トリガ関数に普通の関数を呼び出すようにしてないとできないな。

259 :NAME IS NULL:2017/06/18(日) 14:38:45.44 ID:c1GtVOfY.net
>>254
いや全然意味違うけどw
始めて本当に日本語勉強した方がいい人見つけたw

260 :NAME IS NULL:2017/06/18(日) 17:22:52.65 ID:???.net
はじめて の漢字

261 :NAME IS NULL:2017/06/19(月) 11:04:19.39 ID:???.net
>>256
> トリガープロシージャって普通の関数として単体で実行できるんだっけ?

>>237でも言ったが、トリガー関数単体では実行できないので、トリガーのみをテストしたいなら、
INSERT/DELETE/UPDATEを実行して結果を確かめれば良い。

USERSテーブルにINSERTすると、どこかのテーブルのユーザ数合計がトリガーで更新されるとき、
function testUserCountSucc()
{
  prevCount = getPrevUserCount();
  db->execute("INSERT INTO USERS ...");
  currCount = getPrevUserCount();
  assertEquals(prevCount + 1, currCount);
}

自分がそのトリガーを実装する場合は、トリガー内のIFやFORがどういう条件でどうなるかは
わかるはずなので、C0カバレッジになるようにテストケースを増やせば良い。

「ユーザを追加するとユーザ数合計が更新される」というのが、ホストコードで実装されるのか
トリガーで実装されるのかを「実装詳細」と考えるなら、実は上のやり方は好ましくない。

Users::Add()をテストするどこかで、ユーザ数合計が更新されているassertionを追加したほうが良い。

262 :NAME IS NULL:2017/06/19(月) 11:05:05.04 ID:???.net
s/getPrevUserCount/getUserCount/

263 :261:2017/06/19(月) 11:24:37.78 ID:???.net
なんかもっといろいろ間違ってた。
最初のアンカーは、256じゃなくて>>257

> C0カバレッジ

> C0カバレッジ100%

264 :NAME IS NULL:2017/06/19(月) 13:27:42.02 ID:???.net
>>256
どういう意味で結合テストっていってるのかしらんけど、単体テストでもデータのIN/OUTで確認するだろ

265 :NAME IS NULL:2017/06/19(月) 14:01:09.16 ID:???.net
「発行」するのは人またはプログラム、「実行」するのはRDBMS、という原理主義者なのか?

266 :NAME IS NULL:2017/06/19(月) 14:30:45.06 ID:???.net
>>265
そういうことじゃなくて、俺謎理論だと思うよ

267 :NAME IS NULL:2017/06/19(月) 15:50:42.76 ID:???.net
>>255
DB内で完結するテスト例:http://pgtap.org/
苦行
あえて選ぶなら止めないが

268 :NAME IS NULL:2017/06/19(月) 18:12:21.36 ID:46JrC3Lz.net
>>267
どこが苦行なのか?

269 :NAME IS NULL:2017/06/19(月) 18:27:58.59 ID:???.net
>>268
・普通のプログラムでは簡単に書ける「共通処理」が書きづらい
 → まぁ、functionで実装していけばいいが、以下の考慮が必要になる
・テストを変更するのにいちいちmigrationが必要
・テストはテスト対象と同一データベース内におく必要がある
・故に、CIでテストしようとすると全員のテストを一つのDBに入れる必要がある
・そうすると、他人とシンボル名が重複しないようにするなどの配慮が必要だとわかる
・スキーマで分割すればいいじゃんとか思う
・グダる

普通にコードで書くのが楽よ

270 :NAME IS NULL:2017/06/19(月) 18:32:56.29 ID:46JrC3Lz.net
>>269
コードって別の言語だし、ユーザー、スキーマは結合テストレベルでは本番環境に無理に合わせない。

なんでいきなりシステムテストレベルで確認しようとするのか?

まあ小さいパッケージやWebサイト屋だとそういうテストをする会社や人間が存在するのは知っているが。

271 :NAME IS NULL:2017/06/19(月) 18:35:42.61 ID:???.net
>>270
ちょっと言ってる意味がわからない。

例えばトリガーを単発でテストする方法は>>261に書いたとおり。
ユニットテストレベルの話をしてるのだが。

272 :NAME IS NULL:2017/06/19(月) 18:50:38.92 ID:???.net
>>270
数千人月以上のメガプロジェクトの五次請けさん、お疲れっす

273 :NAME IS NULL:2017/06/19(月) 19:35:49.86 ID:???.net
中抜きを許すな

274 :NAME IS NULL:2017/06/19(月) 19:39:55.80 ID:???.net
pl/pgsqlの、お勧めの入門書ってありますか?
ネットである程度調べられるけど、できれば体系的に学びたいのので

275 :NAME IS NULL:2017/06/19(月) 20:27:58.47 ID:???.net
中折れを許すな

276 :NAME IS NULL:2017/06/19(月) 22:28:40.44 ID:gwyUxO6k.net
>>272
いろいろあなたがずさんなのはいいけど、回答するような立場ではないことは自覚した方がいい。

277 :NAME IS NULL:2017/06/20(火) 10:41:27.92 ID:???.net
>>276
>>270の方が回答するレベルでも立場でもないわなぁ

あと、>>270のいうシステムテストレベルって何だよ?

278 :NAME IS NULL:2017/06/20(火) 11:42:46.63 ID:???.net
コード書けないし、>>261レベルのコードでも何やってるかわかんなくてぐだぐだいってるんだろ

279 :NAME IS NULL:2017/06/20(火) 12:36:01.52 ID:Ce61+VwB.net
データベースが苦手なのはよくわかった

280 :NAME IS NULL:2017/06/20(火) 13:03:55.39 ID:???.net
>>279
最近のレスでは、君が一番ピントずれてるよ

281 :NAME IS NULL:2017/06/20(火) 13:06:51.06 ID:???.net
結局、どうやってテストするかって>>261以外誰も示せてないな

282 :NAME IS NULL:2017/06/20(火) 13:12:08.50 ID:???.net
>>279
で、君のところではどうやってテストしてるの?

283 :NAME IS NULL:2017/06/20(火) 13:20:48.90 ID:???.net
あれかな、Excelの定型処理を自動化しようとしてマクロ書いたら怒られた的な話?

284 :NAME IS NULL:2017/06/20(火) 13:34:57.76 ID:???.net
つか、SIerが仕切る大規模開発で、トリガーが許されるケースなんかあるのか?
トリガーはおろか、ストアドすら許されたことがないんだが。

285 :NAME IS NULL:2017/06/20(火) 14:43:03.46 ID:Ce61+VwB.net
>>284
そのシステム開発プロジェクトのポリシーだろうけど、理由の一つはプロジェクトメンバーのレベルがあらゆる面で低い、もう一つはデータベースがよくわからなくて上がトリガやストアドファンクションを禁止しているパターン。

こういうそれなりに大きいプロジェクトは総じてクソでうまくいかない。

286 :NAME IS NULL:2017/06/20(火) 14:45:59.43 ID:Ce61+VwB.net
>>282
データとSQLを用意してトリガーを動かして実行前と実行後を比較する。

なんでこんなあたりまえのことを言われなきゃわからないのか?

287 :NAME IS NULL:2017/06/20(火) 14:50:35.11 ID:???.net
>>285
最も大きい理由は、大抵データベース設計チームが独立していて、そこが物理設計まで行い、
パフォーマンスの責任まで負うから。

次に大きい理由は、スキーマの変更手順が決まっていて、製造工程中に変更とか無理だから。

その次は、大抵大きなプロジェクトでは、データベースをデータストアとしてしか使わないから。

288 :NAME IS NULL:2017/06/20(火) 14:52:13.39 ID:???.net
>>286
> データとSQLを用意してトリガーを動かして実行前と実行後を比較する。
それマニュアルでやるの大変でしょ?
>>261みたいにテスト書いとけば、CI/CDにも組み込めるよ。
別にマニュアルでやるのは否定しないが、だからといって>>261を否定するのはおかしいよ。

289 :NAME IS NULL:2017/06/20(火) 14:59:19.37 ID:???.net
>>286
それ、>>237と同じじゃんw
>>237を否定してたように見えたが、そうじゃないなら何と戦ってるの?

290 :NAME IS NULL:2017/06/20(火) 15:05:28.32 ID:???.net
クエリを発行する手段としてホストコードを使うよ、
単体テストレベルの話ならユニットテストツールも使えるよってだけなんだけど、
> 何かの言語と結合して
> コードって別の言語だし
というメンタリティの持ち主なので、話が全然噛み合わない

291 :NAME IS NULL:2017/06/20(火) 15:08:58.31 ID:Ce61+VwB.net
>>288
なんでこれが手動みたいに見えるわけ?

292 :NAME IS NULL:2017/06/20(火) 15:12:35.56 ID:Ce61+VwB.net
>>290
あなたみたいにこういうのがテストだと思っているから話がおかしくなる。

単にデータベースを使いこなせないことをごまかすために言っているとしか思えない。

293 :NAME IS NULL:2017/06/20(火) 15:14:22.82 ID:Ce61+VwB.net
PostgreSQLは使われ方から細かいテストをする習慣のない人間が使っていることが多いから理解できないのもわかるよ。

294 :NAME IS NULL:2017/06/20(火) 15:27:48.04 ID:???.net
>>291
手動じゃないなら、具体的にどうやってるの?

295 :NAME IS NULL:2017/06/20(火) 15:32:39.61 ID:???.net
手動じゃないならなんらかの方法で結果を自動チェックしてるわけで、>>261と何が違うんだってことになる

296 :NAME IS NULL:2017/06/20(火) 15:38:25.67 ID:???.net
自分以外全部馬鹿病

297 :NAME IS NULL:2017/06/20(火) 15:45:59.07 ID:Ce61+VwB.net
>>295
それだと結合テストの部類だろ。少なくともPostgresqlなんだからPostgresqlで完結しろよ。

298 :NAME IS NULL:2017/06/20(火) 16:49:13.37 ID:???.net
もしかして手動でSQL実行してトリガが自動で動くから自動って言ってるの?w
まさかそんなわけないか

299 :NAME IS NULL:2017/06/20(火) 20:04:13.49 ID:BP5gL4BV.net
>>298
自動テストの「自動」を誤解している。

よくいるのが有名自動テストツールを使用するのが自動テストで、それで確認できるテストだけがテストだと思ってる人間。

画面をポチポチやるのはたしかに手動だが、それ以外は昔からスクリプトでテストする。

あまり自動化しすぎるとテストにならなくなる。すでに完成しているシステムのリグレッションテストなら有効。

リファクタリングもそうだが特定のツールの機能を使うことを指している人間も多い。

話を戻すとここまでpsqlもPL/pgSQLも出てこない。PostgreSQLやMySQLは入門書で他の言語から使うことばかり書かれているから仕方ないとは思う。

データベースはデータの入れ物、SQLはあまりテストしない習慣の人間といくら話しても平行線をたどる。

LAMP環境だとエンタープライズの感覚がわからないひとは多い。

300 :NAME IS NULL:2017/06/20(火) 20:04:42.35 ID:BP5gL4BV.net
IDが変わってしまった

301 :NAME IS NULL:2017/06/20(火) 22:57:38.13 ID:TFo31zTG.net
好意的に見れば全体的にさほどおかしな理解はしてないようだけど
一つのレスにあれもこれも詰め込みすぎて結局何を言いたいのかさっぱり分からない
知識をドヤりたいんだったらむしろ出し惜しみした方がいいよ

302 :NAME IS NULL:2017/06/21(水) 01:15:28.36 ID:hwqbFp3v.net
>>301
だからいままでまともにレスしてないんだけど?

303 :NAME IS NULL:2017/06/21(水) 01:16:31.24 ID:hwqbFp3v.net
>>301
あんたも知らないなら俺にかまうなよ。2chレスが気になって仕方ない病か?

304 :NAME IS NULL:2017/06/21(水) 10:55:03.30 ID:???.net
見えない敵をマウントご苦労様です

305 :NAME IS NULL:2017/06/21(水) 11:01:28.79 ID:???.net
>>299
> よくいるのが有名自動テストツールを使用するのが自動テストで、それで確認できるテストだけがテストだと思ってる人間。
そんな奴はまれだろ

> リファクタリングもそうだが特定のツールの機能を使うことを指している人間も多い。
そんな奴はまれだろ

> SQLはあまりテストしない習慣の人間といくら話しても平行線をたどる。
自分が頓珍漢だから平行線になっている可能性

> LAMP環境だとエンタープライズの感覚がわからないひとは多い。
PostgreSQLスレでそんなこといわれてもね

306 :NAME IS NULL:2017/06/21(水) 11:34:18.96 ID:???.net
トリガーを発火させるためにコードを書いたら発狂する人がいるということはわかった w

307 :NAME IS NULL:2017/06/21(水) 13:44:23.19 ID:???.net
スクリプトってSQLとは別の言語じゃないんですかね

308 :NAME IS NULL:2017/06/21(水) 14:02:33.79 ID:hwqbFp3v.net
>>307
SQLスクリプト

309 :NAME IS NULL:2017/06/21(水) 14:06:27.90 ID:???.net
>>308
あおりじゃなくて素直に聞きたいんですが、SQLスクリプトで>>261のようなテストはどう書くんですか?

310 :NAME IS NULL:2017/06/21(水) 14:12:32.69 ID:hwqbFp3v.net
>>309
SELECT、INSERT、SELECTでいいでしょう。

311 :NAME IS NULL:2017/06/21(水) 14:14:39.67 ID:???.net
>>310
それは、テストがOKだったかどうかは目視で行うってことですか?

312 :NAME IS NULL:2017/06/21(水) 14:25:56.75 ID:???.net
>>299
> 画面をポチポチやるのはたしかに手動だが、それ以外は昔からスクリプトでテストする。

その昔がいつのことかわからないけど、
DbUnitは2002年から http://dbunit.sourceforge.net/
SQLUnitは2003年から https://www.openhub.net/p/sqlunit
PlSqlUnitは2003年から http://wiki.c2.com/?PlSqlUnit
存在してるよ。

313 :NAME IS NULL:2017/06/21(水) 17:54:26.46 ID:???.net
まさか、
----
select user_count from ...;
insert into users values (...);
select user_count from ...;
----
を実行しますってことじゃないよな?

314 :NAME IS NULL:2017/06/21(水) 18:52:16.88 ID:???.net
ORM採用したら、テストのしようがなく困惑

315 :NAME IS NULL:2017/06/21(水) 21:29:34.23 ID:hwqbFp3v.net
>>312
そういうのを使うのがテストかどうかは何をもってよしとするかだろ。

それも結局、単体テストになってねえし。

316 :NAME IS NULL:2017/06/21(水) 21:33:31.67 ID:hwqbFp3v.net
いい加減な外国人が作ったもの、やってることが正しいわけではない。青臭いのばかりわいてくるなw

317 :NAME IS NULL:2017/06/21(水) 21:39:17.25 ID:hwqbFp3v.net
テストのやり方を知らないから、テスト嫌いなアメリカ人がテストのために作ったものを使うのがテストだと思ってるんだろうな。

テストは泥臭いのも大事。

318 :NAME IS NULL:2017/06/21(水) 21:48:05.04 ID:hwqbFp3v.net
>>313
それカウントはおかしいだろw

319 :NAME IS NULL:2017/06/21(水) 21:57:19.61 ID:???.net
テストケースに根性が入ってない!
とか言いそう

320 :NAME IS NULL:2017/06/22(木) 03:44:57.49 ID:???.net
>>318
カウントじゃなきゃいいだろってことの裏返しでいいんだろか

321 :NAME IS NULL:2017/06/22(木) 10:15:17.34 ID:???.net
>>318
> それカウントはおかしいだろw
どこがだよ?

いい加減、どうやってテストするのかちゃんと書けよ。
書けないのか?

322 :NAME IS NULL:2017/06/22(木) 10:23:56.70 ID:???.net
まぁ、PostgreSQLもMySQLもOracleもSQL Serverも外国人が作ったんですけどね。

323 :NAME IS NULL:2017/06/22(木) 13:45:13.86 ID:???.net
マニュアルでテストしていたのをコードで書くと、テストではなくなってしまうという不思議

324 :NAME IS NULL:2017/06/22(木) 13:51:25.26 ID:???.net
>>317
> テストは泥臭いのも大事。
スマートにできる所はスマートにやればいいだけのこと

325 :NAME IS NULL:2017/06/22(木) 14:45:11.30 ID:???.net
>>315
> そういうのを使うのがテストかどうかは何をもってよしとするかだろ。
いや、どう考えてもテストでしょ。
テストじゃなければ、何なんだ?

326 :NAME IS NULL:2017/06/22(木) 14:48:19.91 ID:???.net
ヘッドレスブラウザを使った、コードによるE2Eテストはテストではない

327 :NAME IS NULL:2017/06/22(木) 18:30:21.14 ID:???.net
こいつCOBOLerだろ

328 :NAME IS NULL:2017/06/22(木) 18:57:40.34 ID:???.net
IDENTIFICATION DIVISION.

なつかしいなw

329 :NAME IS NULL:2017/06/22(木) 19:55:39.73 ID:5JZUMx3g.net
まさかこんなスレにまでコボラーが紛れ込んでいたとは
油断も隙もねえなゴキブリ野郎だなコボラーってやつは

330 :NAME IS NULL:2017/06/22(木) 23:55:50.22 ID:Ck9VN4b3.net
若気のいたりだろうけど謙虚さがなさすぎだな。結局、教えてくれが本音なのに批判だけして正当化してるだけだろw

331 :NAME IS NULL:2017/06/23(金) 12:56:09.07 ID:???.net
>>330
お前のテストのやり方なんて、誰も知りたくないだろ

332 :NAME IS NULL:2017/06/23(金) 15:51:47.59 ID:???.net
>>330
ID:hwqbFp3vに対するコメント?
若気というよりじじい臭がすごいんだが

333 :NAME IS NULL:2017/06/23(金) 18:04:55.76 ID:pI6enatd.net
>>331
いろいろ考えがあって正解はない。ただデータベースならデータ重視のテストをすべきで、特にデータ型はみてもらいたい。

334 :NAME IS NULL:2017/06/23(金) 18:08:08.91 ID:???.net
>>333
だから、どうやってテストしてるのか、はよ書け

335 :NAME IS NULL:2017/06/23(金) 18:08:30.49 ID:pI6enatd.net
>>332
ポスグレでテストは適当でいいはむしろ昔のWebサイトの感覚を引きずっているおっさんの考え方。せっかくポスグレが他のRDBMSに対向すべく機能を追加してるのにまともな使い方を広める人間がいないからシェアが落ちてしまった。

336 :NAME IS NULL:2017/06/23(金) 18:11:51.71 ID:pI6enatd.net
>>334
なぜデータベースの最初のテストを別のプログラミング言語でテストしてはいけない理由がいまだにわからないのか?

337 :NAME IS NULL:2017/06/23(金) 18:15:50.04 ID:???.net
>>335
https://db-engines.com/en/ranking_trend/system/MySQL%3BOracle%3BPostgreSQL

338 :NAME IS NULL:2017/06/23(金) 18:16:25.28 ID:???.net
>>336
そんなのいいから、お前のテスト方法はよ書け

339 :NAME IS NULL:2017/06/23(金) 19:17:58.13 ID:MrOPR6Mg.net
そろそろ小出しにするのやめてまるっとさらけ出しちゃえばいいのに
一斉に叩かれそうだけど賛同者が現われる可能性もないわけじゃないじゃんw

340 :NAME IS NULL:2017/06/24(土) 15:55:07.75 ID:???.net
ぽすとぐれすきゅーえる
ぽすとぐれすえすきゅーえる

341 :NAME IS NULL:2017/06/24(土) 15:55:52.38 ID:???.net
ぽすとぐれすきゅーえる
ぽすとぐれえすきゅーえる

342 :NAME IS NULL:2017/06/24(土) 17:46:56.56 ID:???.net
ぽすとぐれぇすきゅーえる

343 :NAME IS NULL:2017/06/24(土) 18:31:33.28 ID:SDKyUFwq.net
たぶんアメリカ人もポストグレスキューエルと言ってないよな。言いにくいだけ。

344 :NAME IS NULL:2017/06/26(月) 14:18:41.09 ID:???.net
>>339
どうせ>>313みたいなクエリ実行して、目視で確認だろ

345 :NAME IS NULL:2017/06/26(月) 16:29:03.54 ID:I1kQyLDg.net
>>344
大事なところは目視に決まってんだろw

346 :NAME IS NULL:2017/06/26(月) 17:23:24.51 ID:???.net
>>345
エビデンスがない

347 :NAME IS NULL:2017/06/26(月) 18:59:45.38 ID:M3gY6rN7.net
>>346
エビデンスを目視で確認だろw
なんなのかさっぱりわからん。

348 :NAME IS NULL:2017/06/27(火) 11:47:57.60 ID:???.net
>>347
エビデンスというのが>>313の出力結果だとしたら、それがテストOKなのかどうかが第三者にはわからない

まあ、別途テスト仕様書的なものを書けばいいけど
--
No: 123
ケース: ユーザを追加するとユーザ数がカウントアップされる
テスト方法:
1. 現在のユーザ数を取得する
  select user_count from ...
2. ユーザを追加する
  insert into users values (...)
3. 現在のユーザ数を取得し、1.で取得した数+1になっていることを確認する
  select user_count from ...
--

349 :NAME IS NULL:2017/06/27(火) 13:40:41.42 ID:LiLTLORO.net
別人が断片的に言ってることを、批判したいために、自分で話を補完w

350 :NAME IS NULL:2017/06/27(火) 14:14:36.90 ID:???.net
age照る奴は全員NG

351 :NAME IS NULL:2017/06/27(火) 14:40:19.90 ID:LiLTLORO.net
>>350
いまどき上げるななんて意味もわからず、下げているんだろw

352 :NAME IS NULL:2017/06/27(火) 14:57:22.72 ID:???.net
このスレの最近の流れでは、ageてる奴はアホしかいない

353 :NAME IS NULL:2017/06/27(火) 15:17:48.19 ID:???.net
>>335
C0カバレッジ100%を目指せって話をしてるのに、なんで「テストは適当でいい」とかいう話にするのかわけわからん

354 :NAME IS NULL:2017/06/27(火) 15:21:13.83 ID:LiLTLORO.net
>>353
そのテスト基準をなぜDBにあてこもうとするのか?

355 :NAME IS NULL:2017/06/27(火) 15:23:52.51 ID:LiLTLORO.net
データ観点ではなくてロジックの網羅テストがなぜここで出てくるのか。

356 :NAME IS NULL:2017/06/27(火) 15:29:23.11 ID:???.net
>>354
話の流れ的に、トリガーやファンクションをテストする場合の話な
C0カバレッジ100%は、実行するまでエラーチェックされないからだろ
まぁ別に結合テスト(どころか運用)まで未実行の行が残ってようが、俺には関係ないけどな

357 :NAME IS NULL:2017/06/27(火) 15:34:58.84 ID:LiLTLORO.net
>>356
C0ガバレッジ100%はテストの一部にすぎないから、これが適当なテストと指摘してるんだよ。

358 :NAME IS NULL:2017/06/27(火) 15:39:44.54 ID:???.net
>>357
お前どんだけ話をループさせれば気が済むんだよ

>>237
> C0カバレッジで満足できるならそこでやめる。
> 確証が持てないなら、C1カバレッジになるようなテストを追加する。
それでも不安なら、与えるデータのバリエーションを増やすとかするだろ普通

まぁ>>313レベルのテストをやってる奴にはわからないだろうけどな

お前が上でageてたアホなら、いい加減お前のテスト方法を明示しろや

359 :NAME IS NULL:2017/06/27(火) 16:01:25.46 ID:LiLTLORO.net
>>358
それがデータベースの試験にならないとなぜわからない?

360 :NAME IS NULL:2017/06/27(火) 16:04:31.30 ID:LiLTLORO.net
データ型が間違ってることに気づくのは最初のテストくらい。

361 :NAME IS NULL:2017/06/27(火) 19:37:14.54 ID:X5GsG9b9.net
>>360
最初のテストてどういう意味やで?同じテストばかり2回も3回もするんか?

362 :NAME IS NULL:2017/06/28(水) 12:10:20.72 ID:???.net
そりゃテスト結果によって修正入れたらまた同じテストするべ

363 :NAME IS NULL:2017/06/29(木) 17:43:55.97 ID:???.net
>>359
なるでしょ

364 :NAME IS NULL:2017/06/29(木) 18:59:22.05 ID:???.net
>>359
わからせておやり!

365 :NAME IS NULL:2017/07/05(水) 15:31:05.87 ID:???.net
「データ型が間違ってる」というバグを作ったことないし見たことないんだが、具体的にどういうやつなんだ?

366 :NAME IS NULL:2017/07/05(水) 19:54:48.84 ID:???.net
>>365
日付にテキスト型

367 :NAME IS NULL:2017/07/06(木) 14:15:32.31 ID:???.net
>>366
どういう意味?
create tableが間違ってたってこと?

368 :NAME IS NULL:2017/07/06(木) 18:24:01.88 ID:???.net
>>366
なんかよくわからんけど、それがプログラム言語でテストすると検出できないバグという訳か。

369 :NAME IS NULL:2017/07/07(金) 21:06:21.99 ID:???.net
うざいやつは大抵 仕事出来ない か現場では嫌われてる。

370 :NAME IS NULL:2017/07/07(金) 21:36:26.67 ID:ctnQeX+M.net
どうした急に?w

371 :NAME IS NULL:2017/08/05(土) 12:55:37.44 ID:???.net
win10にこいつインストールすると
spotifyも一緒に入れられたりする?
いつのまにか入ってたんだけど。

372 :NAME IS NULL:2017/08/05(土) 13:08:43.77 ID:???.net
こいつとはなんだ

373 :NAME IS NULL:2017/08/06(日) 11:16:15.41 ID:???.net
こいつとはpostgresqlのこと。

こいつのテーブル見たりするのに
オススメのソフトある?

374 :NAME IS NULL:2017/08/06(日) 13:01:39.72 ID:???.net
>>373
pgAdmin3が定番じゃね?
日本語訳がいろいろ怪しいのと、テーブルに直接2バイト文字を入力するのがちょっと面倒なのがアレだけど

375 :NAME IS NULL:2017/08/06(日) 16:46:01.67 ID:???.net
pgAdmin4を使って、糞重たくてやってられなかったんだが、3は軽いのですか?

376 :374:2017/08/06(日) 18:25:58.23 ID:???.net
>>375
逆に4は使ったことないけど、3で不自由感じたことないよ。不具合といえば、日本語関係と、テーブルの最後100行をシートビューで表示することができないくらい(最後の100行を選択しても最初の100行になる)

377 :NAME IS NULL:2017/08/06(日) 18:40:15.36 ID:???.net
>>376
> テーブルの最後100行をシートビューで表示することができないくらい(最後の100行を選択しても最初の100行になる)
そんなことやったことなかったけど、今やってみたらちゃんと最後の100行が表示されたよ
V1.22.2

378 :376:2017/08/06(日) 18:44:12.63 ID:???.net
>>377
今試したら直ってた(V1.20.0)
知らないうちにアップデートで直ってたのかも

379 :NAME IS NULL:2017/08/06(日) 18:45:16.17 ID:???.net
PgAdmin3は落ちまくるという問題がある

PgAdmin4はクソ重いので、代替案としてこれはどう?
https://www.workflowproducts.com/postage.html

380 :NAME IS NULL:2017/08/06(日) 21:08:01.69 ID:???.net
MySQL/MariaDBに切り替えて、MySQL Workbenchを使おう。

381 :NAME IS NULL:2017/08/11(金) 06:50:09.46 ID:???.net
pgadminって日本語弱いんでしたっけ?
ポスタゲはよくわからないです。

382 :NAME IS NULL:2017/08/11(金) 08:57:20.70 ID:???.net
1.4はひどかったけど、1.6でマシになった
パフォーマンスも全然違ってびっくりしたわ

383 :NAME IS NULL:2017/08/11(金) 10:09:58.38 ID:b98NF32s.net
>>381
3は日本語化が中途半端

384 :NAME IS NULL:2017/08/12(土) 01:02:37.65 ID:???.net
オブジェクトやタプルなんかに日本語使わなければ大丈夫なんでしょ。
あんまり使ってないのがバレバレだけどw

385 :NAME IS NULL:2017/09/06(水) 22:43:13.52 ID:???.net
9.6.5のリリースノートにあるinformation_schemaの作り直しって
postgres, template0, template1についても必要?

386 :NAME IS NULL:2017/09/10(日) 00:32:28.16 ID:???.net
どなたかご存知の方がいたら教えてください。(スレ違いであれば教えてください。)

OracleからPostgreSQLへのマイグレーションをしています。
既存のWebシステムで、JDBCを利用してデータ登録などをしており、そのあたりもマイグレーションしています。

サーバ:Linux
PostgreSQL:9.2
開発環境:Windows10 or Windows8.1
Java:JDK7

Webシステムからtext型のカラムに改行コードを含むデータを登録しようとしています。
Insert時に、「ERROR: 符号化方式"UTF8"で無効なバイトシーケンスです: 0x00」が
出力され登録できません。

PostgreSQLの文字コードは、UTF-8でデータベースを作成しています。
また、Webシステム側の文字コードもUTF-8で作成しています。
JDBCで登録する際には、もともとOracleのnamedparameterを使用していたため、
springのnamedparameterjdbctemplateを使用するように変更しています。

standard_conforming_stringsをoffにしたり、接続URLにclient_encoding=UNICODEを
追加したりしましたが、解決しません。
エスケープするため、E''も試しましたが、namedparameterjdbctemplateの関係か
うまくいませんでした。

同様の事象を経験された方で、解決された方がいましたら、解決方法を教えていただけますでしょうか。
よろしくお願いします。

387 :NAME IS NULL:2017/09/10(日) 01:26:01.70 ID:???.net
>>386
ERROR: invalid byte sequence for encoding “UTF8”: 0x00
で検索するといいよ
0x00(NULL文字)はダメだよってこと

388 :NAME IS NULL:2017/09/10(日) 21:23:21.58 ID:???.net
Webシステムで改行ってなに?
コードでいうと何にしているのかな?

389 :NAME IS NULL:2017/09/10(日) 23:43:17.83 ID:???.net
<BR>

390 :NAME IS NULL:2017/09/12(火) 07:59:33.48 ID:RvTqi/j1.net
>>386
PostgreSQLにUTF-8で無効なバイト列0x00を追加しようとした。
Oracleに不正な文字列が格納されているか、もしくはOracleからPostgreSQLにデータ移行するために使用したツールなどに不具合がある。

391 :NAME IS NULL:2017/09/13(水) 00:16:55.86 ID:???.net
<BR>ならエラーにならんだろ

392 :NAME IS NULL:2017/09/14(木) 20:25:30.83 ID:???.net
あんたら親切だな!

393 :NAME IS NULL:2017/09/14(木) 22:10:06.01 ID:???.net
ヌル文字君は解決したんか?

394 :NAME IS NULL:2017/09/14(木) 23:48:05.57 ID:???.net
ubuntuにpostgres入れたんですが
ロールを作るロールが無い状態です
最初はどうやってpostgresのシェルに入ればいいんですか?

395 :NAME IS NULL:2017/09/14(木) 23:55:04.85 ID:???.net
https://launchschool.com/blog/how-to-install-postgres-for-linux

396 :NAME IS NULL:2017/09/15(金) 00:30:25.54 ID:???.net
>>395
psqlコマンド使えるようになりました。
ありがとうございました

397 :NAME IS NULL:2017/09/16(土) 20:47:02.72 ID:???.net
create role ってよくわからない

398 :NAME IS NULL:2017/10/06(金) 22:32:45.48 ID:liJfTkWb.net
10!

399 :NAME IS NULL:2017/10/08(日) 19:34:06.23 ID:???.net
こんなクソなのを製品に使うアホって
なんなの?

400 :NAME IS NULL:2017/10/08(日) 20:22:05.26 ID:???.net
>>399
うんこバエさんきたー

401 :NAME IS NULL:2017/10/09(月) 17:19:47.37 ID:IaR+bs7d.net
>>397
ポスグレはそこが独特でユーザーとロールの概念が分かれていない。

402 :NAME IS NULL:2017/10/15(日) 11:33:31.89 ID:???.net
>>401
どもね 勉強中

403 :NAME IS NULL:2017/10/18(水) 13:48:09.73 ID:???.net
10速すぎ

404 :NAME IS NULL:2017/11/02(木) 19:26:52.67 ID:???.net
明日 その辺の話が聞けるかな。
楽しみぃ。
会場で会いましょう@あーりん推し

405 :NAME IS NULL:2017/11/25(土) 08:09:39.32 ID:???.net
複合型とか配列とかJSONデータ型とか、そういう標準じゃないっぽいデータ型は
色んな言語・環境用のドライバインタフェースではどれくらいサポートされているものなんでしょう?

406 :NAME IS NULL:2017/11/25(土) 08:55:32.88 ID:???.net
>>405
してないです

407 :NAME IS NULL:2017/11/25(土) 09:31:52.49 ID:???.net
>>406
ありがとうございます。
ではデータベース上では便利そうでも実際の利用を考えると使いにくいことが多そうですね。

408 :NAME IS NULL:2017/11/25(土) 13:43:10.19 ID:???.net
psqlのシェルで
db=# が
db-# になってるのはどういう意味ですか?

409 :NAME IS NULL:2017/11/25(土) 13:54:54.60 ID:8LU8WHb9.net
なんにでも意味を求めるな、あるがままに受け入れるんだ

410 :NAME IS NULL:2017/11/26(日) 19:03:51.65 ID:rCRyhJ2E.net
>>408
適当に答えると、英語表示になっているんじゃないのか?

日本語キーボードの「=」は英語キーボードの「-」。

411 :NAME IS NULL:2017/11/26(日) 20:59:43.65 ID:???.net
>>410
サンクス、解決しました

クエリの途中で改行したせいみたいです。;セミコロンでクエリを終わらすと=に戻りました。

412 :NAME IS NULL:2017/11/28(火) 00:37:43.64 ID:???.net
ここで良いのか分かりませんが質問させてください。(スレ違いであればご指摘いただけますと幸いです。)

PostgreSQL案件がチラ見してくるので最近触り始めましたが、
oracleでいうパスワードポリシーのようなパスワードの強度を強制する機能は標準では無い認識ですが、
機能を実装する場合は現状では拡張モジュールのpasswordcheckを使う事になるのでしょうか。

413 :NAME IS NULL:2017/11/28(火) 01:52:00.45 ID:GwTQQ85m.net
>>412
どういう要件なのかわからないが、PostgreSQLのようなOSSの世界では、必要であれば追加するという考え方をする。

機能を使うのではなく、だれかが作ったものを使う、または自分が作る。

必要だったら拡張モジュールを追加し、不要だったら追加しない。

基本的にLinuxと同じ考え方。

414 :NAME IS NULL:2017/11/28(火) 03:54:19.02 ID:???.net
Kerberos認証にしちゃえば

415 :NAME IS NULL:2017/11/28(火) 09:23:21.54 ID:???.net
>>413
有り難う御座います。
oracleから切り替えることを想定した場合に、ひとまず機能の網羅性を確認しておりました。
現状提供されているもので足りなそうな機能については新規開発も視野にいれてナレッジに致します。
工数が見合えば自分で作ってみたいですね!

>>414
有り難う御座います。
セキュリティ要件としてはkerberosで満たせるかどうかも踏まえて材料にしていこうかと思います。

416 :NAME IS NULL:2017/11/28(火) 12:21:14.96 ID:ElK6LRIO.net
>>413
それってoss特有なん?
必要なのに追加しないって考え方なんかあるのか?
テキトーに言ってんだろお前w

417 :NAME IS NULL:2017/11/28(火) 12:38:36.42 ID:???.net
>>416
うーんこの感じ
ホンモノかね

418 :NAME IS NULL:2017/11/28(火) 13:28:19.88 ID:GwTQQ85m.net
>>415
ここで聞くより、PostgreSQLのコミュニティで聞いた方がいいよ。ここは他人の書き込みに文句ばかりつけるやつが多いから。

419 :NAME IS NULL:2017/11/28(火) 19:56:44.84 ID:IrGXLwwF.net
>>418
お前が間違ったこと言うから質問者のために正してやってんだよw

420 :NAME IS NULL:2017/11/29(水) 13:51:05.16 ID:R+zY4y9g.net
日本PostgreSQLユーザ会
https://www.postgresql.jp/

421 :NAME IS NULL:2017/12/13(水) 23:40:47.51 ID:???.net
バージョンアップしてアプリが動かなくなることってある?
例えば9.5.xのxの部分だけあげようと思ってるんだけど
何か気を付けることとかあるかな?
試しにテストサーバたててやってみたら何も問題なく動いてるんだけど
慎重にいきたいので何かデメリットがあるなら教えてほしい

422 :NAME IS NULL:2017/12/14(木) 01:25:56.12 ID:???.net
慎重に行きたいならまず公式のドキュメントを読め。
それぞれのバージョンのリリースノートにちゃんと書いてあるから。

423 :NAME IS NULL:2017/12/18(月) 00:39:01.46 ID:???.net
慎重にいくのなら、そのままにしとけば?
更新する意義があんの?

424 :NAME IS NULL:2017/12/29(金) 11:07:08.13 ID:dtNZwIie.net
誰でも簡単にパソコン1台で稼げる方法など
参考までに、
⇒ 『宮本のゴウリエセレレ』 というブログで見ることができるらしいです。

グーグル検索⇒『宮本のゴウリエセレレ』

PBKPMWLMUY

425 :NAME IS NULL:2017/12/29(金) 17:37:38.70 ID:???.net
>>424
http://www.1seikou.biz/ad/3as/lov/
だそう

426 :NAME IS NULL:2018/02/14(水) 13:24:01.28 ID:???.net
☆ 日本の、改憲をしましょう。現在、衆議員と参議院の両院で、
改憲議員が3分の2を超えております。『憲法改正国民投票法』、
でググってみてください。国会の発議はすでに可能です。
平和は勝ち取るものです。お願い致します。☆☆

427 :NAME IS NULL:2018/02/17(土) 11:33:18.60 ID:cmxxvUwJ.net
pgadmin4のサーバー版ってどうやってインストールするの?
ubuntuでapt-get install pgadmin4したら何かインストールされたけど後何したらいいかわからん

428 :NAME IS NULL:2018/02/17(土) 11:36:47.25 ID:???.net
$ psql

429 :NAME IS NULL:2018/02/18(日) 22:41:05.64 ID:???.net
公式ドキュメントのUPDATEの項の例に「アクメ社」ってのが出てきて、何となくナニワ金融道を思い出した

430 :NAME IS NULL:2018/02/19(月) 12:20:20.89 ID:???.net
ワーナーのアニメのウサギ、バッグスバニーが出てくるアニメで
コヨーテ御用達の通販会社かな

431 :NAME IS NULL:2018/03/03(土) 16:04:58.76 ID:???.net
publicスキーマにユーザ定義関数を置いている場合、
10.3にはおいそれとはアップグレードできんな……。
こんなことになるとは思ってもみなかった。

432 :NAME IS NULL:2018/03/11(日) 10:02:43.62 ID:???.net
初めてVMware入れて
初めてsentOS入れて
初めてそこにpgadminでデータベース作った
作ったのはいいけどファイル名が数字の羅列なの変に感じるんだけどそんなもん?
SQLiteやmySQLだとデータベース名を例えばrennsyuuにしたらファイル名もrennsyuuの文字入ったけど
postgreだと入らない。
なんかバックアップとか難しそうだけど慣れるしかないの?

433 :NAME IS NULL:2018/03/11(日) 11:02:54.67 ID:???.net
>>432
学校に行って勉強しろよ。英語と算数と計算機科学。

434 :NAME IS NULL:2018/03/11(日) 11:35:55.43 ID:???.net
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+----------+----------+---------+-------+-----------------------
postgres | postgres | UTF8 | C | C |
template0 | postgres | UTF8 | C | C | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | C | C | =c/postgres +
| | | | | postgres=CTc/postgres
日本語db | postgres | UTF8 | C | C |
(4 rows)

435 :NAME IS NULL:2018/03/11(日) 11:58:19.81 ID:???.net
>>432
そんなセンスのないこと言ってるようじゃそもそもデータベースの設計すら出来ませんよ

436 :NAME IS NULL:2018/03/25(日) 18:39:35.34 ID:uUt3WCZ6.net
「.db」形式のファイルはどのようにPostgresへリストアするのでしょうか?

437 :NAME IS NULL:2018/03/25(日) 21:14:03.58 ID:bZNA9I9J.net
自己解決

pg_restore -U "ユーザー名" -C -d "DB名" AAA.db

438 :NAME IS NULL:2018/03/26(月) 08:52:42.85 ID:???.net
.dbつってフォーマットを正解できるのはエスパーくらい

439 :NAME IS NULL:2018/03/31(土) 15:20:12.38 ID:8C/tQKpJ.net
なぜか観てしまう!!サバイバル系youtuberまとめ
http://tokyohitori.hatenablog.com/entry/2016/10/01/102830
あのPewDiePieがついに、初心YouTuber向けに「視聴回数」「チャンネル登録者数」を増やすコツを公開!
http://naototube.com/2017/08/14/for-new-youtubers/
27歳で年収8億円 女性ユーチューバー「リリー・シン」の生き方
https://headlines.yahoo.co.jp/article?a=20170802-00017174-forbes-bus_all
1年で何十億円も稼ぐ高収入ユーチューバー世界ランキングトップ10
https://gigazine.net/news/20151016-highest-paid-youtuber-2015/
おもちゃのレビューで年間12億円! 今、話題のYouTuberは6歳の男の子
https://www.businessinsider.jp/post-108355
彼女はいかにして750万人のファンがいるYouTubeスターとなったのか?
https://www.businessinsider.jp/post-242
1億円稼ぐ9歳のYouTuberがすごすぎる……アメリカで話題のEvanTubeHD
https://weekly.ascii.jp/elem/000/000/305/305548/
専業YouTuberがYouTubeでの稼ぎ方具体的に教えます。ネタ切れしない方法は〇〇するだけ。
https://www.youtube.com/watch?v=Co9a9fHfReo
YouTubeで稼げるジャンルは〇〇動画です。YouTube講座
https://www.youtube.com/watch?v=_Nps8xb5czQ

440 :NAME IS NULL:2018/05/16(水) 14:44:27.84 ID:???.net
text型について教えてくたさい。
制限なしの可変長、つまり、長さを気にせず入れられて、短い場合はそのサイズのみディスク容量を使う認識であってますか?
その前提で、普通データベースに入れるテキストって、どれくらいのサイズまでって一般的な指針なんてありますか?
とあるログ(20万文字程度?)を有するデータを月10000個ほど登録します。その際、text型で中身を登録するか、テキストファイルと保存し、そのファイル名を登録するのは、どちらがいいでしょうか?

441 :NAME IS NULL:2018/05/16(水) 22:37:47.47 ID:???.net
>>440
> 制限なしの可変長、つまり、長さを気にせず入れられて、短い場合はそのサイズのみディスク容量を使う認識であってますか?

概ねそう。制限無いといってもあるけどね。
まあギガ単位の話なのでそうそうないだろう。

> その前提で、普通データベースに入れるテキストって、どれくらいのサイズまでって一般的な指針なんてありますか?

DBによって違うだろう。
当たり前だけどpgの場合も長ければ長いほどオーバーヘッド高くなってパフォーマンス落ちるよ。可変長はTOASTされて細切れレコードで格納されるので。

> text型で中身を登録するか、テキストファイルと保存し、そのファイル名を登録するか

個人的には好きな方でやれば?レベル。
中身入れちゃった方が楽だよね。
でもその分DBが太るからバックアップとか、障害時とか運用よく考えて決めたら。

442 :NAME IS NULL:2018/05/23(水) 21:52:48.15 ID:yTjxXYth.net
DBに入れる→なんかあったときDBAの責任
ファイルに出す→なんかあったときOSインフラの責任

Linuxだろうけど、i-node で耐えうるファイル数やサイズの検証値って意外と誰も持ってなかったりするから
全部自分でやらんといかん面倒やね

443 :NAME IS NULL:2018/05/24(木) 23:34:49.44 ID:???.net
責任転嫁の話しか?
そんなの、システムを組んだヤツだわ
DBAやインフラの責任にすなやって思う

444 :NAME IS NULL:2018/05/25(金) 10:08:18.80 ID:RL/OlVcJ.net
そういや、どのぐらいの同時接続まで耐えられるかとか知りたいな
もし、何千接続、何万接続に耐えられるような時代になったら、バックエンドの構成もだいぶ変わるだろうし

445 :NAME IS NULL:2018/05/25(金) 14:24:08.58 ID:???.net
データなかったでしたっけ?

446 :NAME IS NULL:2018/05/26(土) 08:07:21.84 ID:???.net
昔、unixに比べてnfs弱くて使えないって言われてた

447 :NAME IS NULL:2018/05/26(土) 08:20:21.96 ID:???.net
nfs?
このスレと何の関係があるか知らんが、あんなもの元から使えない
こくに今の時代使いどころ間違えると終わる
お家で使うくらいに留めるべきもの

448 :NAME IS NULL:2018/05/27(日) 01:08:04.85 ID:Z87ucrVE.net
>>444
今はクライアントが直接DBつつかないだろ
Webサーバー、アプリサーバー経由でつなぐんだから、どっちかというと接続数がクリティカルになるのはそっち

449 :NAME IS NULL:2018/05/28(月) 20:45:22.81 ID:???.net
接続について教えてください。
私の作ったアプリが常時接続していると指摘されました。
ver9.5で、多分pgAdminのサーバー状態の活動のウィンドウだと思うのですが、クエリーがDISCARD ALLとなっています。
アプリはc#の2005でnpgsqlを使用しており、都度connectionはusingで破棄してるつもりです。
これだと接続はきれないのでしょうか?
DISCARD ALLとはどういう状態でしょうか?

450 :NAME IS NULL:2018/05/29(火) 14:11:45.78 ID:???.net
>>44


スポール

451 :NAME IS NULL:2018/06/02(土) 17:07:30.77 ID:???.net
日本だけだよPostgreSQLが使われてるのって

452 :NAME IS NULL:2018/06/02(土) 17:26:51.69 ID:???.net
へーそうなんだ
Coverity って言うその業界ではそこそこ有名なツールで使われてたけど日本製なのかな w

453 :NAME IS NULL:2018/06/04(月) 10:03:47.52 ID:???.net
マルチマスタ標準実装早くして欲しいなぁ。

454 :NAME IS NULL:2018/06/05(火) 08:21:50.71 ID:???.net
>>452
他は?

455 :NAME IS NULL:2018/06/05(火) 08:51:21.58 ID:???.net
>>454
あれ?
「日本だけ」じゃなかったの?
てか、こいつらは日本人なのにいちいち英語でやってるとでも? w
https://www.postgresql.org/community/

456 :NAME IS NULL:2018/06/05(火) 11:10:31.37 ID:???.net
日本医師会が医師から集めた会費から開発費を捻出して開発し、フリーソフトとして公開されている日医標準レセプトというソフトは
サーバー機能をUbuntuで動かしデーターベースとしてpostgesqlを採用している
そのユーザー数がおよそ15,000医療機関(医科の病院と診療所)ある

457 :NAME IS NULL:2018/06/05(火) 11:21:41.01 ID:???.net
将来的には希望した医療機関は、日本医師会が用意したクラウド環境に順次移行することで院内サーバーが不要になる
https://www.orcamo.co.jp/products/orca/cloud.html

458 :NAME IS NULL:2018/06/05(火) 16:22:51.65 ID:???.net
初歩的な質問ですが、教えてください。
postgresqlの事で調べてると、SQL文が出てきます。
例えばセッションの確認とかだと
select 〜 from pg_stat_activity とか。
こういうのは、どこで実行するのですか?
普段、pgAdminしか使わないので。
SQL Shell をデフォルトでログインして実行しても、プロンプトが=#から-#になって、helpすら表示されなくなります。

459 :NAME IS NULL:2018/06/05(火) 19:00:00.03 ID:???.net
>>458
SQL分は文末にセミコロン「;」が必要だよ。

=# select * from pg_stat_activity;

とするか、

=# select *
-# from pg_stat_activity
-# ;

な感じで。

460 :NAME IS NULL:2018/06/05(火) 19:36:16.93 ID:???.net
>>459
おお!ありがとうございます!!
これで色々試せそうです!!!

461 :NAME IS NULL:2018/06/05(火) 20:09:47.53 ID:???.net
pgadmin で遊ぶといろいろ勉強できるね。
psqlだけだと殺風景みたいな。

462 :NAME IS NULL:2018/06/06(水) 18:41:50.88 ID:Gajfs/TG.net
遊びから学んでいいのは小学生までやぞ

463 :NAME IS NULL:2018/06/07(木) 18:07:16.68 ID:???.net
オラクルを今まで使ってたんですが、カーソルを複数返すときの推奨方法はなんでしょうか?
アウトパラメータで、カーソルを戻す
リターンカーソルで、リターンネクストで複数戻す
今はこれくらいしか、思いつきません

464 :NAME IS NULL:2018/06/09(土) 02:30:00.65 ID:hcbikbxQ.net
Oracle使いがオラクルとカタカナで書くとは思えぬ。

465 :NAME IS NULL:2018/06/09(土) 22:05:52.67 ID:???.net
オラクルじゃなくてオラコォーな

466 :NAME IS NULL:2018/06/09(土) 22:55:41.15 ID:???.net
発音的には オアコォ ね

467 :NAME IS NULL:2018/06/09(土) 23:02:06.51 ID:???.net
そういや最近OracleのCMって見ないね
レニークラビッツの曲に合わせてオラコォー連呼してたのとか懐かしい

468 :NAME IS NULL:2018/06/09(土) 23:04:11.71 ID:???.net
ロゴが迫ってくる奴だっけ

469 :NAME IS NULL:2018/06/10(日) 09:28:39.96 ID:???.net
な CMあったのか
週刊プロレスのCM見てないのと同じレベル

470 :NAME IS NULL:2018/06/10(日) 09:33:39.67 ID:???.net
シスコシステムズのCMもあったよね

471 :NAME IS NULL:2018/06/10(日) 11:34:43.13 ID:???.net
これだな
https://www.youtube.com/watch?v=5-Y9yJTsRFg

472 :NAME IS NULL:2018/06/10(日) 17:33:49.42 ID:???.net
NULLの代わりにNaN使うことできないの?

473 :NAME IS NULL:2018/06/10(日) 20:58:02.19 ID:H1Ou+f2f.net
>>471
ずいぶん古いのを持ってきたな。

474 :NAME IS NULL:2018/06/27(水) 13:21:45.22 ID:???.net
pgadmin4って使い勝手良さそうなのかな?pgadmin3の使い勝手が良いので10に移行出来ないw

475 :NAME IS NULL:2018/06/27(水) 20:09:05.74 ID:Exjj86zV.net
>>474
4はあまり使われていないと思う。

PostgreSQLをGUIで操作しているひとが少ないせいでよくならない。

476 :NAME IS NULL:2018/06/28(木) 04:24:23.72 ID:???.net
学びはじめの頃に3をちょっと使ってみた。
最近4を使ってみたが、なんかバグっぽい感じ?
どちらにしても今となっては必要性を感じないな

477 :NAME IS NULL:2018/07/06(金) 20:01:15.88 ID:???.net
>>467
金儲けに走って評判悪化

478 :NAME IS NULL:2018/07/06(金) 23:46:25.27 ID:???.net
>>477
評判がよかったときがあるのか?

479 :NAME IS NULL:2018/07/07(土) 01:16:25.99 ID:???.net
オラコーは売れる数減ってきてるのに売上高維持しようとしてるから、毎年値上げしててその額が半端じゃないらしいな。

480 :NAME IS NULL:2018/07/07(土) 09:08:27.58 ID:???.net
postgresとmariaにがんばっていただきましょう

481 :NAME IS NULL:2018/07/08(日) 00:23:14.36 ID:rFyThfKq.net
>>479
お金を取る方が健全。マイクロソフトなんてビジネスとしては崩壊しかかっている。

482 :NAME IS NULL:2018/07/08(日) 00:46:06.61 ID:???.net
>>481
詳しく

483 :NAME IS NULL:2018/07/08(日) 00:47:24.96 ID:???.net
>>481
"マイクロソフトのビジネスは崩壊しかかっている"

無知すぎワロタ

484 :NAME IS NULL:2018/07/08(日) 02:31:24.04 ID:???.net
売り切りソフトからAzureに軸足を移したことを知らんのね

485 :NAME IS NULL:2018/07/08(日) 03:01:26.48 ID:???.net
アズレってなーに

486 :NAME IS NULL:2018/07/08(日) 06:33:46.28 ID:???.net
>>481
SQL-Serverもそれなりの対価頂いておりますが…

487 :NAME IS NULL:2018/07/08(日) 06:58:47.58 ID:???.net
https://youtu.be/COxAA8145vM
Microsoft AzureのAzureはカタカナでアズールと表記するのが現在では一般的となっている

488 :NAME IS NULL:2018/07/08(日) 07:04:37.61 ID:???.net
Microsoft、Azure売上高倍増で予測を上回る増収増益
Microsoftの1〜3月期決算は、Azureを含むクラウド事業が好調で売上高は16%増、純利益は35%増だった。
[佐藤由紀子,ITmedia] 2018年4月27日
http://www.itmedia.co.jp/news/spv/1804/27/news072.html
 米Microsoftは4月26日(現地時間)、2018年第3四半期(2018年1〜3月期)の決算を発表した。「Azure」や「Office 365」などの商用クラウド事業が好調で、2桁台の増収増益だった。

 売上高は前年同期比16%増の268億2000万ドル、純利益は35%増の74億2000万ドル(1株当たり0.95ドル)だった。売上高、1株当たりの純利益ともにアナリスト予測(売上高は258億ドル、純利益は0.85ドル)を上回った。

 Intelligent Cloud部門が今期も好調で、Azure Computeの売上高が93%増だった。部門全体の売上高は17%増の79億ドルだった。

Intelligent Cloud部門
https://i.imgur.com/Wnlwc1L.jpg

489 :NAME IS NULL:2018/07/08(日) 07:07:53.77 ID:???.net
 OfficeやLinkedIn、Dynamicsを扱うProductivity and Business Processes部門の売上高は17%増の90億1000万ドルだった。企業向けOffice 365の売上高が42%増と好調。
LinkedInの売上高も37%増と好調だった。企業向けOffice 365のMAUは1億3500万人、コンシューマー向けのMAUは3060万人。

Productivity and Business Processes部門
https://i.imgur.com/FxHA02l.jpg

 Windows、ハードウェア、Xbox、検索のMore Personal Computing部門の売上高は、Windows、ゲーム、Surface、検索が好調で13%増の99億2000万ドルだった。検索は16%増、ゲームは18%増。ハードウェアではSurfaceの売上高が32%増だった。

More Personal Computing部門
https://i.imgur.com/EHknOcd.jpg

490 :NAME IS NULL:2018/07/08(日) 09:33:53.80 ID:???.net
>>481
ねえまだ?

491 :NAME IS NULL:2018/07/08(日) 23:39:34.33 ID:K/+3T+EH.net
>>490
蓄えた資産がなかったら倒産してたぞ。

492 :NAME IS NULL:2018/07/08(日) 23:58:31.05 ID:???.net
>>491
ソース

493 :NAME IS NULL:2018/07/22(日) 03:45:20.98 ID:???.net
>>451
嘘つきだな
こういうヤツに限ってMySQL使ってるとか?
MySQLとかオラクルが豹変したら死ぬぞ?w

494 :NAME IS NULL:2018/07/22(日) 03:49:23.74 ID:???.net
>>479
オラクルがJavaの次に狙ってるのはMySQLに何らかライセンス徴収ルール作る事
OSSだから、そんな事有り得ないとMySQLユーザーは言うがJavaも有り得ないと言われてた
でMariaDBに逃げたヤツが一番賢い、と言われる様になると思う

495 :NAME IS NULL:2018/07/22(日) 05:13:57.78 .net
PostgreSQLに来た奴は賢くないの

496 :NAME IS NULL:2018/07/22(日) 07:25:42.77 ID:???.net
MySQLに商用ライセンスが存在するのは元からやん。
Javaの話もなにか勘違いしてないかい?

497 :NAME IS NULL:2018/07/22(日) 11:36:45.83 ID:???.net
でも、MariaDBに逃げとくに越したこたないだろ。
MySQLの先行きが読めないことは間違いないし、そろそろそれぞれで違いが出てきてるみたいだし。

498 :NAME IS NULL:2018/07/22(日) 11:55:36.19 ID:???.net
で、なんでこのスレに書き込んだの?

499 :NAME IS NULL:2018/07/22(日) 13:29:21.88 ID:???.net
>>493
PostgreSQLって何がいいん?w

500 :NAME IS NULL:2018/07/22(日) 13:29:45.88 ID:???.net
>>493
MariaDBだろJK

501 :NAME IS NULL:2018/07/22(日) 14:43:55.22 ID:???.net
なんでPostgreSQLのスレにMySQLやMariaの信者が居るんだ?

502 :NAME IS NULL:2018/07/22(日) 18:34:13.33 ID:???.net
なんでとはいったい?

503 :NAME IS NULL:2018/07/22(日) 18:38:30.86 ID:???.net
PostgreSQL信者しか書き込んだらいけないらしい

504 :NAME IS NULL:2018/07/22(日) 18:39:58.50 ID:???.net
自分が使っている、気に入っているものがやっぱり一番だと思いたいのが人間だし
それを否定されると自分が否定されていると思っちゃう人もいるわけだし
そのあたりの空気を読めることが望まれているのでしょう

505 :NAME IS NULL:2018/07/22(日) 18:54:05.75 ID:???.net
PostgreSQLに全く関係のない話題を書き込まれてもなぁ・・

506 :NAME IS NULL:2018/07/22(日) 19:09:06.70 .net
AMDのスレによくIntel派の人がRyzen腐しにくる

507 :NAME IS NULL:2018/07/22(日) 20:40:34.32 ID:???.net
メインのスレに書き込める程知識が無い
もしくはスレ住人に相手にされてないor嫌われてる

関係ないスレに書き込む

スレ違いなのでそのスレの住人に怒られる
これを相手にされていると勘違いする ←今ここ

関係ない話題でスレ常駐し始める

徹底的にスルーされるので飽きて居なくなる
もしくはスレ住人に擬態する

508 :NAME IS NULL:2018/07/22(日) 21:01:49.13 ID:???.net
DB系のスレは最近、だいたい過疎ぎみだからな。
書き込みがあるだけマシなんでは。w

509 :NAME IS NULL:2018/07/23(月) 17:49:47.34 ID:???.net
早くMySQLにライセンス徴収開始されんかなw
Javaと同じ運命にして欲しいわw

510 :NAME IS NULL:2018/07/23(月) 18:00:28.15 ID:???.net
>>509
この場合のライセンス徴収はGPL版にも商用版と同じライセンス適用の話ね

511 :NAME IS NULL:2018/07/23(月) 18:01:12.14 ID:???.net
>>503
そうですよw
ご退場下さいw

512 :NAME IS NULL:2018/07/23(月) 21:09:28.38 ID:???.net
>GPL版にも商用版と同じライセンス適用

意味不明すぎるw

513 :NAME IS NULL:2018/07/23(月) 22:03:35.25 ID:???.net
>>510はGPLなら常にタダだと思ってるバカ w

514 :NAME IS NULL:2018/07/23(月) 23:41:15.75 ID:???.net
>>513
"常に"なんてどこに買い込みしてる?
アホか

515 :NAME IS NULL:2018/07/23(月) 23:41:30.90 ID:???.net
>>514
書き込みね

516 :NAME IS NULL:2018/07/23(月) 23:43:06.33 ID:???.net
>>504
そういう不完全な人の話は聞く耳持たんなw

517 :NAME IS NULL:2018/07/24(火) 05:35:41.63 ID:???.net
GPLでも徴収できることを知ってたら>>509みたいなアホレスはしないだろ
>>514は傷口広げて自爆するバカ w

518 :NAME IS NULL:2018/07/24(火) 06:23:30.86 ID:???.net
早くオラクルが動く事を祈るw

519 :NAME IS NULL:2018/07/26(木) 16:23:44.06 ID:???.net
https://m.srad.jp/story/13/09/11/0431225
オラクル自身MySQLのバグ対応なんてどーでも良いと思ってる

520 :NAME IS NULL:2018/07/27(金) 18:01:07.56 .net
失望しました! PostgreSQLに乗り替えます

521 :NAME IS NULL:2018/07/28(土) 13:15:20.88 ID:tm98Iqt0.net
>>519
それはわざとだよ。MySQLを徐々に衰退させたいため。

522 :NAME IS NULL:2018/07/28(土) 13:16:49.48 ID:tm98Iqt0.net
>>520
そのポスグレさんは知っているひとが少なくて苦戦する。

しかもシェアが低いのでとにかく情報がなく、ソースコードまで読まなければならない。

523 :NAME IS NULL:2018/07/28(土) 13:33:26.03 ID:???.net
まあOracle, MySQL, SQL-Serverの御三家に比べりゃ少ないけどそれ以下の有象無象の中ではトップだから情報が少ないとか言ってるのは単なる情弱

524 :NAME IS NULL:2018/07/28(土) 17:42:23.60 ID:???.net
Oracleは早くMySQLユーザーをOracleに移行させたい
よってMySQLのサポートなんておざなりになるのは当然
MariaDB、PostgreSQLが元MySQLユーザーの受け皿になる

525 :NAME IS NULL:2018/07/29(日) 01:37:24.34 ID:???.net
Mysqlの人はMariaに行くんだろうな。

526 :NAME IS NULL:2018/07/29(日) 02:28:28.20 ID:???.net
型チェックとか厳しく無いものから厳しいものへは移行せんだろうな

527 :NAME IS NULL:2018/07/31(火) 01:24:00.18 ID:???.net
WordPressなんかMySQL使用前提だがオラクルがMySQLのライセンス徴収厳密化したらユーザー発狂するだろうな

528 :NAME IS NULL:2018/08/11(土) 18:27:16.56 ID:???.net
>>MySQL系は大規模データベースを想定して作られていないせいで、管理は楽だが、物理ファイルと論理ストレージが一緒のため、データ量が多くなってくるとデータベースを止めずに何か変更することが難しくなる。

やっぱりPostgreSQLだな

529 :NAME IS NULL:2018/08/11(土) 19:14:41.43 ID:???.net
VACUUMをなくして。どうぞ。

530 :NAME IS NULL:2018/08/11(土) 20:19:25.04 ID:???.net
未だにvacuumやっているの?

531 :NAME IS NULL:2018/08/11(土) 21:27:50.36 ID:???.net
やらなくてもダメではないけど、しなくてもいいわけでもないらしいが?
どないやねん。

532 :NAME IS NULL:2018/08/11(土) 23:38:08.56 ID:???.net
やらんとだめやろ…
https://www.postgresql.jp/document/9.3/html/routine-vacuuming.html#AUTOVACUUM

533 :NAME IS NULL:2018/08/12(日) 09:56:05.70 ID:???.net
勝手にやってくれます

534 :NAME IS NULL:2018/08/12(日) 23:16:01.74 ID:???.net
>>532
Autoをやってる。というかな?
勝手にやってくれているんだから、それでいいやって思うわ。

535 :NAME IS NULL:2018/08/12(日) 23:42:58.99 ID:???.net
>>530がvacuumやってるのか?
って言うからvacuum自体は必要だよって言っただけ
設定が必要かどうかは状況による

536 :NAME IS NULL:2018/08/12(日) 23:48:21.97 ID:cfFh3cqu.net
どのRDBMSでも自動ではやらないよな。そんなのされたら一時的に使えなくなる。

537 :NAME IS NULL:2018/08/13(月) 07:35:09.19 ID:???.net
他のDBもvacumeみたいなのやってるの?

538 :NAME IS NULL:2018/08/13(月) 08:45:14.73 ID:???.net
vacuumなんてするのは
うんこ収集車とポスグレぐらいだな

539 :NAME IS NULL:2018/08/13(月) 09:09:10.02 ID:???.net
>>537
他のDBMSは領域再利用するから基本不要
ただファイルシステムとかと同様に断片化してくるから再構成をすることもある
http://cosol.jp/tech/detail/d3_maintenance_table.shtml

540 :NAME IS NULL:2018/08/13(月) 12:45:01.48 ID:???.net
>>539
ども
その時にやるか後でやるかのトレードオフだね。

541 :NAME IS NULL:2018/08/14(火) 21:15:03.73 ID:oiTTuwPu.net
質問いいすか?

542 :NAME IS NULL:2018/08/15(水) 02:41:57.99 ID:???.net
MySQLスレで質問したら、自分で試せ、で終わるらしい
こっちはOK

543 :NAME IS NULL:2018/09/17(月) 02:33:58.97 ID:x6EZpwmB.net
PostgreSQL最高!!!

544 :NAME IS NULL:2018/09/17(月) 19:11:48.49 ID:???.net
PostgreSQLを業務利用してからOracleをやることになったんだけど、
それで分かったこと。

PostgreSQLはSQLも設計仕様も、とても綺麗。
Oracleはダメ。信じられないくらいのポンコツ。

545 :NAME IS NULL:2018/09/17(月) 19:39:42.56 ID:???.net
主観はどうでもいい
根拠は?

546 :NAME IS NULL:2018/09/17(月) 19:42:23.82 ID:qUdR5wYD.net
主観の根拠聞きたいんか?

547 :NAME IS NULL:2018/09/18(火) 11:39:30.81 ID:???.net
Oracleで綺麗じゃないとか言ってるのか。MySQLなんか、とんでもなく汚いぞ。

548 :NAME IS NULL:2018/09/18(火) 11:53:21.22 ID:???.net
僕は逆に10年以上前にOracleからPostgreSQLに変えたけど、特に困難なく移行できた。
仕様も変なクセがないし他のスタッフからも不満はまったくない。
それにまず社長が喜んだ(笑)

549 :NAME IS NULL:2018/09/18(火) 12:32:59.59 ID:???.net
汚さで言えば
MySQL(MariaDB)>Oracle>PostgreSQL
キッチリ手順明確なのがPostgreSQL
どうにかやれば動いてしまうのがMySQL

550 :NAME IS NULL:2018/09/18(火) 14:42:36.23 ID:???.net
MySQLはべつに汚くないぞ。
ところどころがちょっといいかげんなだけ。

551 :NAME IS NULL:2018/09/18(火) 15:15:57.49 ID:???.net
僕みたいな年寄りには、MySQLは、
・単なるサブセット(だから多少早くても当たり前)、
・マルチバイトが使い物にならない
っていう認識がこびりついてて使う気にならない

552 :NAME IS NULL:2018/09/18(火) 15:17:05.14 ID:???.net
あ〜、今は違うんだろうけど

553 :NAME IS NULL:2018/09/18(火) 20:21:10.84 ID:???.net
そりゃ二十年近く昔だろ。w
そのころは、ふつうにお安く使えるのはMySQLくらいしかなかったがな。

554 :NAME IS NULL:2018/09/19(水) 10:01:57.06 ID:???.net
選択肢増えた今はMySQLでなければ、と言うシーンが無い

555 :NAME IS NULL:2018/09/19(水) 19:48:09.82 ID:???.net
PostgreSQLのスレだから言うわけじゃないけど、
もうPostgreSQLしかねーだろ!
他はカス!

556 :NAME IS NULL:2018/09/19(水) 22:35:09.37 ID:???.net
>>554
そして、PostgreSQLでなければというシーンもない。
ま、ふつうの人にはどっちも同じ。

557 :NAME IS NULL:2018/09/20(木) 23:01:35.16 ID:???.net
>>555 だよね!!

MariaDB、MySQL、FireBirdは触ったことはないが・・・。

OracleはSQLPlusで、操作したことはあるけど面倒。
SQLServerも面倒で触れたこともない。

558 :NAME IS NULL:2018/09/21(金) 17:37:17.26 ID:???.net
Oracleは、簡単なことをするにもサブクエリー使わなきゃならないのよ。
なので3階層くらいのサブクエリーは普通になってしまう。
で、可読性が落ちてしまい、自分でも理解不能になる。
人によってはビューやストアドプロシージャで解決しようとして、これらを書きまくりメンテ不能に陥る。

PostgreSQLなら素直で簡潔なSQL書けるのに、と思うよ。

559 :NAME IS NULL:2018/09/21(金) 19:53:52.72 ID:???.net
>>558
Oracle PL/SQLのメンテナンスはしんどい
人それぞれでロジックの組み方違う
ライセンス含めOracleはもう厳しい

560 :NAME IS NULL:2018/09/21(金) 21:49:15.41 ID:???.net
>>558
具体例プリーズ

561 :NAME IS NULL:2018/09/22(土) 00:12:04.26 ID:???.net
ここってpostgres派生のgreenplumについて聞いても大丈夫?
ライセンス価格わからなくて困ってる

562 :NAME IS NULL:2018/09/22(土) 07:45:07.11 ID:???.net
>>560
具体例はいちいち覚えていない・・・
そんなの覚えても役立つことなどないから覚えようという気がしないので。
ごめんね。

でもPostgreSQLでSQL書ける奴が業務でOracleに乗り換えれば、その不満はすぐに感じると思うぞ。

563 :NAME IS NULL:2018/09/22(土) 08:22:58.98 ID:???.net
>>562
なるほど知ったか指摘されたら答えられないってことね
了解

564 :NAME IS NULL:2018/09/22(土) 13:29:00.90 ID:/G0Wh7Kz.net
>>558
それは手続きの隠蔽にすぎず、SQLの可読性が下がる。

一度、ソートしないと結果が得られないのに、一度のSELECTでできるかのように思わせる方が問題だ。

このあたりの独自格調のせいで、IT技術者であっても誤解が広まって、SQLはこう書くとこう処理されると言い始める。

565 :NAME IS NULL:2018/09/22(土) 13:40:17.48 ID:???.net
なるほど、格調高いレスだな

566 :NAME IS NULL:2018/09/22(土) 17:28:36.98 ID:???.net
>>561
BSDライセンスじゃ無いの?

567 :NAME IS NULL:2018/09/22(土) 19:22:35.33 ID:Q/qdUs3S.net
なんで>>558>>564は通じあっとるんやw
バカ同士の会話おそるべしw

568 :NAME IS NULL:2018/09/22(土) 22:09:43.40 ID:???.net
>>566
商用利用前提でコミュニティ版でパフォーマンス検証したいけど、そもそも高すぎたら却下されるから、知ってる人がいたら大まかでいいから価格感が知りたかったのですね

569 :NAME IS NULL:2018/09/22(土) 22:34:08.21 ID:???.net
>>566
ちなみに商用だとコアライセンスです

570 :NAME IS NULL:2018/09/23(日) 06:43:51.08 ID:???.net
>>569
ここで聞く話か?

571 :NAME IS NULL:2018/09/23(日) 23:20:52.25 ID:???.net
>>570
確かにそうですね、すみませんでした

572 :NAME IS NULL:2018/09/27(木) 18:00:51.39 ID:???.net
あやまるこたーない

573 :NAME IS NULL:2018/09/29(土) 18:05:12.36 ID:???.net
『PostgreSQL全機能バイブル』
鈴木 啓修 著

は良本だな。俺のバイブルになってる。

574 :NAME IS NULL:2018/09/30(日) 22:21:19.59 ID:???.net
7のやつは評判よかったね。
10のはさすがにもう出ないか。

575 :NAME IS NULL:2018/10/01(月) 20:16:09.31 ID:???.net
10から入門する自分としてはそれほしい…(´・ω・`)

576 :NAME IS NULL:2018/10/01(月) 21:21:02.90 ID:???.net
PostgreSQL完全機能リファレンス
なら 8.1 対応ですよ。
10 だってこの本(8.1用)で大丈夫だよ。

577 :NAME IS NULL:2018/10/02(火) 12:07:09.92 ID:???.net
なーる

578 :NAME IS NULL:2018/10/02(火) 12:42:17.66 ID:???.net
宣言的パーティショニングとか10でついた機能とかの説明もほしいの…(´・ω・`)

パーティショニングした列指向テーブル読んでもパラレルクエリにならんのを解決できるか調べたい

579 :NAME IS NULL:2018/10/04(木) 02:51:51.68 ID:???.net
SRA OSSやHPが毎年新機能評価報告出してくれるのはありがたい。

580 :NAME IS NULL:2018/10/04(木) 12:46:20.19 ID:Prg8isVQ.net
psycopg2の本ってあるの
なかったら誰か書いて、買うから…

581 :NAME IS NULL:2018/10/04(木) 18:16:15.01 ID:???.net
sqlはそこそこ書けるプログラマです
インフラ担当が居ない案件に派遣されてしまいました
開発から運用まで行うとしたらどんなことを勉強したらいいでしょうか

582 :NAME IS NULL:2018/10/04(木) 19:31:32.77 ID:???.net
バックアップとリストアができりゃOK。

583 :NAME IS NULL:2018/10/04(木) 20:02:24.40 ID:???.net
それだけじゃなんも答えられんやろ。
一口にインフラといっても、OSのインストールやらネットワークの設定やら、そもそも物理設置やら、いろいろ。

584 :NAME IS NULL:2018/10/04(木) 20:38:39.12 ID:zNNbXIbO.net
インフラ技術者がいないのであれば、そこが重要だと思ってないし、自分の自由にできる可能性が高くてうらやましい。

585 :NAME IS NULL:2018/10/06(土) 12:36:54.75 ID:???.net
勉強できるってのはいいね。
聞けない人がいないなら、会社持ちで外にリサーチに行けばいいし。

586 :NAME IS NULL:2018/10/06(土) 21:31:32.49 ID:???.net
DB専任の技術者なんて、なんの役に立つの?

587 :NAME IS NULL:2018/10/06(土) 23:10:17.97 ID:???.net
まったく
しかも「そこそこ書ける」程度の

588 :NAME IS NULL:2018/10/07(日) 16:36:34.88 ID:???.net
sqlはそこそこ書けるプログラマって言ってんだろ。
DB専任なんてどこに書いてあるんだよ。

589 :NAME IS NULL:2018/10/07(日) 21:29:16.65 ID:???.net
おまえは誰?

590 :NAME IS NULL:2018/10/07(日) 22:32:08.90 ID:???.net
開発から運用まで、何をしたらいいのか皆目見当もつかない(sqlはそこそこ書ける)プログラマ
でした

591 :NAME IS NULL:2018/10/07(日) 23:50:33.04 ID:???.net
楽しんでやればいい。
そんなサイトがいっぱいある。

592 :NAME IS NULL:2018/10/08(月) 20:08:30.46 ID:???.net
>>581
1.システム化したい業務の聞き取り
2.システム化したい業務の仕様書作成
3.実作業

593 :NAME IS NULL:2018/10/13(土) 19:44:38.56 ID:???.net
https://imgur.com/FAF05na.jpg

594 :NAME IS NULL:2018/10/14(日) 19:50:54.62 ID:???.net
この画像リンクなんなんマジで

595 :NAME IS NULL:2018/10/14(日) 20:16:08.94 ID:???.net
>>594
しーっ。触っちゃいけません!

596 :NAME IS NULL:2018/10/14(日) 20:27:41.81 ID:???.net
そっか、すまぬ

597 :NAME IS NULL:2018/10/16(火) 09:52:18.32 ID:???.net
消されててわかりません

598 :NAME IS NULL:2018/10/19(金) 00:19:27.00 ID:???.net
11が出たね

599 :NAME IS NULL:2018/10/21(日) 12:09:56.42 ID:???.net
まじすか 速いすね

600 :NAME IS NULL:2018/10/25(木) 12:16:33.39 ID:???.net
Amazonプライムデーのサーバーダウン原因は「データベースをOracleからPostgreSQLに変えた」ため
https://hayabusa9.5ch.net/test/read.cgi/news/1540429567/

601 :NAME IS NULL:2018/10/25(木) 14:18:17.40 ID:???.net
AmazonによるPostgreSQLへのなかなか貴重な貢献だ

602 :NAME IS NULL:2018/10/25(木) 23:58:15.58 ID:???.net
>>601
俺の第一印象も「Oracleすげー」より、「これでポスグレが一皮むけるな」だった

603 :NAME IS NULL:2018/10/26(金) 09:54:55.81 ID:???.net
>>600
Amazonプライムデーのサーバ障害、AmazonがOracleからAurora DBに乗り換えたのが原因ではない。Amazon CTOがCNBCの報道を否定
https://www.publickey1.jp/blog/18/amazonamazonoracleaurora_dbamazon_ctocnbc.html

なんかそのニュースがフェイクニュースだった可能性も出てきているな

604 :NAME IS NULL:2018/10/26(金) 12:54:44.74 ID:???.net
記者が、自分で勝手にストーリーをつくってしまって、あわない理屈を排除するのは、どこの国でもおんなじか。。。

たしかに、セーブポイントの仕様が違うなら違って当然で、その仕様の通りにしてないアプリが完全に悪いわな。

605 :NAME IS NULL:2018/10/26(金) 12:56:40.39 ID:???.net
無能なプログラマーが、トランザクションの中で無用なsavepointを連続して発行していたのが原因の模様。
アマゾンのシステム開発してる人の中にも、こういうレベルの人がいるんだな。

606 :NAME IS NULL:2018/10/26(金) 13:30:19.36 ID:???.net
PostgreSQLの仕様分かって無いヤツがプログラム作った結果か
有り得る話だな

607 :NAME IS NULL:2018/10/27(土) 16:27:00.62 ID:???.net
トラブルはあったにせよ、Amazonほどの規模のとこでもPostgreSQLが使われるんだって思うと感慨深いなぁ

608 :NAME IS NULL:2018/10/27(土) 17:00:16.92 ID:???.net
AmazonにはAurora PostgresとAurora MySQLがある中で、Aurora Postgresを選んだというのもいいね。
徹底的に比較した上でPostgresを選んだんだろうから。

609 :NAME IS NULL:2018/10/27(土) 17:26:37.35 ID:???.net
Oracleから移行ってことなら比較以前にMySQLは選択しにくいよね

610 :NAME IS NULL:2018/10/27(土) 17:47:03.47 ID:???.net
MySQLのほうが性能は高いかもだけど、機能は少ないからね。

611 :NAME IS NULL:2018/10/27(土) 18:52:30.87 ID:???.net
単純に「MySQLのほうが(PostgreSQLよりも)『性能』が高い」っていうのはどうかな?

612 :NAME IS NULL:2018/10/27(土) 18:52:50.77 ID:???.net
だからMySQLならMariaDBだろ。。

613 :NAME IS NULL:2018/10/27(土) 18:57:57.04 ID:???.net
>>612
お帰りはこちらです。
https://mevius.5ch.net/test/read.cgi/db/1360677476/l50

614 :NAME IS NULL:2018/10/27(土) 19:22:03.75 ID:???.net
>>613
は?

615 :NAME IS NULL:2018/10/27(土) 19:37:21.74 ID:???.net
>>614
は?

616 :NAME IS NULL:2018/10/27(土) 20:40:45.03 ID:???.net
MySQLはその内Javaの様にランタイムライセンス課されて終わるよ
Oracleの狙いはそこ
今現在、そこそこシェア取ってるから

617 :NAME IS NULL:2018/10/27(土) 20:46:56.60 ID:???.net
元から有料の商用ライセンスがあるのに何言ってんの

618 :NAME IS NULL:2018/10/27(土) 20:57:57.83 ID:???.net
>>615
はぁ?

619 :NAME IS NULL:2018/10/27(土) 21:36:22.33 ID:???.net
アマゾンがpostgresって事実が凄いね

620 :NAME IS NULL:2018/10/28(日) 07:31:21.33 ID:???.net
>>618
はぁ?

621 :NAME IS NULL:2018/10/28(日) 07:41:37.02 ID:???.net
>>617
無償版をJava同様、6ケ月毎の更新にするって話
で、OpenJDKの様に無償版をOpenMySQLにして6ケ月毎にバージョンアップする
6ケ月毎にバージョンアップって現場ではやってられないので、MySQL→MariaDB移行にする中小企業が増える
MySQLが廃れる方向って話

622 :NAME IS NULL:2018/10/28(日) 11:14:17.39 ID:???.net
>>620
はぁああ?

623 :NAME IS NULL:2018/10/28(日) 11:22:12.94 ID:???.net
(;´Д`)ハァハァ

624 :NAME IS NULL:2018/10/28(日) 11:43:04.87 ID:???.net
>>622
はぁああ?

625 :NAME IS NULL:2018/10/28(日) 14:59:58.96 ID:???.net
MySQL使いが悔しくて荒らしてるw

626 :NAME IS NULL:2018/10/28(日) 16:04:38.38 ID:???.net
>>625
勘違い

MySQLと比べてるのが滑稽なだけ
せめて比べるとしたらMariaDBだろっていうツッコミが>>612なのに
なぜかそれに過剰反応してる信者(>>613)が一人いるだけ

627 :NAME IS NULL:2018/10/28(日) 16:40:20.82 ID:???.net
MariaDBと比較と言っても実質MySQLの無償版と同じだからね

628 :NAME IS NULL:2018/10/28(日) 17:07:09.82 ID:???.net
そろそろ意外と違うらしいよ?

629 :NAME IS NULL:2018/10/28(日) 17:35:03.21 ID:???.net
別に何と比べようが各人の自由だろ
滑稽とか言う方が滑稽だよ

630 :NAME IS NULL:2018/10/28(日) 18:56:42.22 ID:???.net
アマゾンがオラクルからDB移行した件で、Amazon AuroraのPostgresと同じくAuroraのMySQLの話題の流れで、アホが突然MariaDBガーとか言い出したからバカにされたんだろw

631 :NAME IS NULL:2018/10/28(日) 19:52:48.40 ID:???.net
と思いたいってことかな

632 :NAME IS NULL:2018/10/28(日) 21:33:06.09 ID:???.net
>>626
>>631

633 :NAME IS NULL:2018/10/28(日) 21:49:02.74 ID:???.net
>>632
ちょっと何が言いたいのかわかんないっすね

634 :NAME IS NULL:2018/10/29(月) 04:52:45.77 ID:???.net
>>626
>>633

635 :NAME IS NULL:2018/10/29(月) 19:02:36.62 ID:???.net
AWSのAuroraがMariaDBをサポートしてたら、こんなに(?)バカにされなくてすんだのにね
可哀想だね(´;ω;`)

636 :NAME IS NULL:2018/10/29(月) 21:11:49.69 ID:???.net
>>635
RDSなら対応してる
https://aws.amazon.com/jp/rds/mariadb/

637 :NAME IS NULL:2018/10/30(火) 10:48:39.40 ID:???.net
恥の上塗り(´゚ω゚`)

638 :NAME IS NULL:2018/12/06(木) 22:35:34.47 ID:???.net
ポスグレ入れてたサーバのjavaを削除した後にポスグレのサービスが起動しなくなったのですがポスグレはjavaに依存しないですよね?

639 :NAME IS NULL:2019/01/04(金) 11:57:23.15 ID:???.net
ダンプサイズって上限あるのか知りたい。。50GBとか100GBとかいけるもの?

640 :NAME IS NULL:2019/01/05(土) 09:01:40.58 ID:???.net
>639
自己解決しました。いけるんですね。

641 :NAME IS NULL:2019/01/11(金) 16:52:13.04 ID:???.net
DBMS of the year 2018 受賞おめでとうございます

642 :NAME IS NULL:2019/01/19(土) 11:04:26.28 ID:???.net
初めまして
9.3.5から9.3.22にアップデートしたいのですが
ググってもメジャーアップデートの方法しかヒットせず困っております。
マイナーアップデートの方法が丁寧に説明されている書籍やHPや
教えていただけるイケメンはいらっしゃらないでしょうか?

643 :NAME IS NULL:2019/01/19(土) 11:10:19.27 ID:???.net
>>642
OSはlinux レッドハットの6になります。

644 :NAME IS NULL:2019/01/19(土) 11:55:12.08 ID:???.net
公式の文書が一番のイケメンだからよく読め

645 :NAME IS NULL:2019/01/19(土) 13:13:52.22 ID:???.net
9.3系はEOLになってしまいましたよ。

646 :NAME IS NULL:2019/01/19(土) 13:15:55.78 ID:???.net
>>642
メジャーアップデートしろよ

647 :NAME IS NULL:2019/01/19(土) 18:32:29.81 ID:???.net
>>642
DB停止して上書きインストールするだけやで。
9.3.22のrhel6用のrpm用意して
yum localinstall rpm列挙
でよいかと。

648 :NAME IS NULL:2019/01/19(土) 19:02:34.99 ID:???.net
>>647
ありがとうございます!
そのあたり調べてみます。
>>645
完全に外部から閉鎖している社内システムなんでマイナーアップデートすら必要ないんですが
外部監査で指摘されてスーパースーパーハッカーがキャッツアイみたいに侵入したら
だめだよね?って真顔でいわれてSEチームが全員じゃぁおれら辞めるわって言いだして
折衷案ですることになった非常にくだらない件でしてEOLは関係ないんです

649 :NAME IS NULL:2019/01/19(土) 19:36:38.20 ID:???.net
>>648
あほすぎ。w
たいへんやな。
そこまでいかれたら、DBなんかなんでもおんなじやのに。

650 :NAME IS NULL:2019/01/20(日) 03:10:39.36 ID:???.net
俺ならじゃあお前らやめろと言うな

651 :NAME IS NULL:2019/01/20(日) 03:21:07.11 ID:???.net
>>648
言いたいことは分かるが草生える
そう言う話になってる時点で保守契約とかもしてなさそうなのでその時点でどうなの?って気はする

652 :NAME IS NULL:2019/01/20(日) 06:53:17.04 ID:???.net
俺んとことなんて、内部監査で同じこと言われる。
しかも言う側はエンジニアではない素人だ。

何も知らないカスどもと思うけど誰も何も言えない。
折衷案まで漕ぎつけるだけ、まだいい。ウラヤマシ。

653 :NAME IS NULL:2019/01/20(日) 11:49:48.77 ID:???.net
>>651
保守なんか関係あるか?

オレはこんふうに想像。w
1 上層部が適当に外部監査を依頼。
2 とくに問題なし。
3 監査側としてはなにか指摘しないといけない。
4 どうでもいいことをムリヤリ指摘。
5 上層部が真に受ける。

654 :NAME IS NULL:2019/01/20(日) 15:24:36.13 ID:???.net
>>653
完全に内部専用のサーバを外部業者入れて監査する厳しさがあるなら、内部専用でも本番環境なら保守契約くらいやっていそうなものだ
書いてる内容的にそうでも無さそうだから、体制の矛盾を感じて不思議に思っただけ

自分的には、会社のポリシーでEOL製品の継続利用はNGってなってるだけじゃねーのと

655 :NAME IS NULL:2019/01/29(火) 08:13:39.00 ID:???.net
マイナーアップデートしたらキャッツアイに勝てるの?

656 :NAME IS NULL:2019/02/23(土) 10:50:46.95 ID:???.net
pgAdminでテーブルを作ろうとしているのですが、データ型で[ ]がついてるものとそうでないものの違いは何ですか?
データ型の横に別に長さを指定もできるようなので混乱しています。

657 :NAME IS NULL:2019/02/23(土) 12:23:07.69 ID:???.net
配列じゃねーの?

658 :NAME IS NULL:2019/02/23(土) 14:51:36.48 ID:???.net
配列を1レコードに格納できるんですね。

659 :NAME IS NULL:2019/03/01(金) 18:18:12.68 ID:???.net
クラスタリングするならpg pool 2が良いのでしょうか?

660 :NAME IS NULL:2019/03/01(金) 21:23:34.33 ID:Z1dNjNNK.net
クラスタリングするな

661 :NAME IS NULL:2019/03/02(土) 08:19:53.14 ID:???.net
>>660
あかんか?性能がほしいんやが。

662 :NAME IS NULL:2019/03/02(土) 08:37:48.79 ID:???.net
日本語でおK

663 :NAME IS NULL:2019/03/02(土) 08:43:41.55 ID:???.net
>>659
それが正解です

664 :NAME IS NULL:2019/03/02(土) 11:07:55.25 ID:???.net
ポスグレって初回アクセス遅くないですか?

665 :NAME IS NULL:2019/03/03(日) 20:26:54.63 ID:8NWgRq1j.net
ポスグレって初回アクセス遅くないです

666 :NAME IS NULL:2019/03/05(火) 12:47:02.99 ID:???.net
最初のセレクトは遅いかも

667 :NAME IS NULL:2019/03/05(火) 16:05:47.30 ID:???.net
何と比較して?

668 :NAME IS NULL:2019/03/05(火) 16:27:25.83 ID:???.net
アホにかまうな、
アホに反応するな、
が最適解

669 :NAME IS NULL:2019/03/05(火) 20:48:03.98 ID:???.net
>>666
だよね!


>>667
SQLServerと比較すると初回アクセスのみ結構遅い

670 :NAME IS NULL:2019/03/05(火) 23:46:00.67 ID:???.net
キャッシュないもんそら遅いわな。

671 :NAME IS NULL:2019/03/06(水) 20:03:46.28 ID:???.net
DB単体のスピードを追求する場面ってあるの?
大抵は回線とかクライアント側の端末がボトルネックになってる気が

672 :NAME IS NULL:2019/03/06(水) 20:35:04.60 ID:???.net
>>671
> DB単体のスピードを追求する場面ってあるの?
はっ?

> 大抵は回線とかクライアント側の端末がボトルネックになってる気が
でかいシステムだと何台のクライアントからアクセスあると思ってるんだよw

673 :NAME IS NULL:2019/03/06(水) 22:24:48.20 ID:???.net
読み取りを分散させるとこまで出来ました
更新を分散させつつ整合性を保つ魔法はまだわかりません

674 :NAME IS NULL:2019/03/07(木) 07:23:06.56 ID:6UNHudHL.net
>>671
たいていDB上にデータとビジネスロジックを置くので、DB以外に速度を求められる場所がない

675 :NAME IS NULL:2019/03/07(木) 19:37:38.11 ID:???.net
>>669
初回アクセス速度を速くしたけりゃ、共有バッファを調整して、DB起動時に一度そのSQLを実行してテーブルをメモリに乗せときゃいいんじゃね?

676 :NAME IS NULL:2019/03/10(日) 12:13:13.36 ID:???.net
というSQLを起動時にやってるという話を聞いた事がある。

677 :NAME IS NULL:2019/03/10(日) 21:24:50.77 ID:???.net
キャッシュウォーミングとかで検索!

678 :NAME IS NULL:2019/03/10(日) 21:49:54.92 ID:???.net
勉強になりますw

679 :NAME IS NULL:2019/03/25(月) 22:40:04.95 ID:???.net
psqlのロールとシェルのユーザって同じ名前じゃなきゃログインできないの?

680 :NAME IS NULL:2019/03/26(火) 00:02:11.79 ID:???.net
設定次第。pg_hba.confでidentになってるとそうなる。

681 :NAME IS NULL:2019/03/26(火) 00:10:08.12 ID:???.net
hbaってふんふんってわかった気になるけど、SSLでやろうと思ったりすると
結構迷うよね。

682 :NAME IS NULL:2019/03/26(火) 23:45:18.73 ID:???.net
>>680
mda5に直したらいけましたサンクス

新規のロールってグラントしてもらわないとログインすらできないの?

683 :NAME IS NULL:2019/03/27(水) 03:09:43.83 ID:???.net
肥大化したテーブルから古いデータをバックアップテーブルに退避して、その後削除するようなクエリを書きたいのですが、そもそもこのような対応は一般的なのでしょうか?
他に一般的な手法があれば教えてください。

684 :NAME IS NULL:2019/03/27(水) 13:09:22.23 ID:???.net
荒れる予感

685 :NAME IS NULL:2019/03/27(水) 21:40:16.46 ID:???.net
地雷でしたか?

686 :NAME IS NULL:2019/03/28(木) 12:35:37.42 ID:???.net
delete from tbl;
でいいのでわ

687 :NAME IS NULL:2019/03/29(金) 02:16:08.60 ID:???.net
毎日決まった時間に指定のクエリを実行したいのですが、pgAdmin4でそのようなことは出来ますか?

688 :NAME IS NULL:2019/03/29(金) 06:45:35.66 ID:???.net
できない

689 :NAME IS NULL:2019/03/29(金) 08:48:47.68 ID:???.net
pg_cron

690 :NAME IS NULL:2019/04/02(火) 16:27:39.43 ID:???.net
OSS-DB試験受けた人いる?

691 :NAME IS NULL:2019/04/02(火) 22:40:31.62 ID:???.net
いるよ

692 :NAME IS NULL:2019/04/06(土) 01:47:56.89 ID:???.net
シルバ持ってるよ

693 :NAME IS NULL:2019/04/08(月) 14:46:26.85 ID:???.net
なにかの役にたった?

694 :NAME IS NULL:2019/04/10(水) 01:18:01.42 ID:???.net
履歴書に書くネタが増えただけ

695 :NAME IS NULL:2019/06/13(木) 03:09:12.05 ID:???.net
住信SBIネット銀行、オンプレオラクルをAuroraPostgreSQLに移行。性能や可用性もPoC上、問題ないと判断。83%コスト削減。銀行の勘定系のクラウド化の時代なんだな。もはや、放送のシステムやマスターもクラウド化できる時代や

696 :NAME IS NULL:2019/06/13(木) 16:25:04.23 .net
銀行はオンプレミスでないと流石に個人情報漏れが怖いわ
クラウドってIntel のCPU積んでるだろうから、毎月追加更新される脆弱性報告見てると不安が増すばかり
自社はしっかりシステム作ってても、同じサーバで稼働してる別会社のシステムが杜撰だったとして
セキュリティ突破されようものなら、煽りを食って連座して突破されてしまうわけだし

逆に言うと、銀行系のシステムを狙ってわざとセキュリティの甘いシステムを、
銀行が使用してるクラウドサーバと同じサーバで稼働させてクラックしてそこをつたって銀行の情報抜き取るとか
そういう新型の犯罪が成立しそうだし

銀行や政府は漫然とクラウドを利用するべきではない

697 :NAME IS NULL:2019/06/13(木) 19:30:07.35 ID:???.net
>>696
> 逆に言うと、銀行系のシステムを狙ってわざとセキュリティの甘いシステムを、
> 銀行が使用してるクラウドサーバと同じサーバで稼働させてクラックしてそこをつたって銀行の情報抜き取るとか
自分が稼働させたサーバーを自分でクラックするのかw
アホすぎる…

698 :NAME IS NULL:2019/06/13(木) 20:42:10.78 ID:???.net
>>697
今の仮想環境を知らんのか。
アホすぎる。

699 :NAME IS NULL:2019/06/13(木) 22:38:50.78 ID:???.net
>>698
へー、今の仮想環境だと自分で設置したサーバーをわざわざクラックする必要あるんだw
ちょっと詳しく説明してくれるかな

700 :NAME IS NULL:2019/06/13(木) 23:03:36.56 ID:???.net
うーん、ちょっと噛み合ってなくてワロタ

701 :NAME IS NULL:2019/06/14(金) 00:32:19.97 ID:???.net
結局説明できないのかw

702 :NAME IS NULL:2019/06/14(金) 23:15:50.80 ID:???.net
授業料を払うつもりがあるんなら、説明したることを考えたってもええで?
タダというんはムシがよすぎるやろ。w

703 :NAME IS NULL:2019/06/14(金) 23:36:01.19 ID:???0.net
クラウドサービスを理解してなさそうw

704 :NAME IS NULL:2019/06/15(土) 10:14:26.34 ID:???.net
うーん、ちょっと噛み合ってなくてワロタ

705 :NAME IS NULL:2019/06/15(土) 11:48:22.81 ID:???.net
>>696
あー
そうねw

706 :NAME IS NULL:2019/06/16(日) 13:15:51.14 ID:???.net
admintool4の使い勝手が良い
Windows10にもdebian9にもpostgreSQLを入れている。

707 :NAME IS NULL:2019/06/19(水) 02:22:05.94 ID:???.net
admintool4ってググってもこのスレしか出てこないけどpgAdmin4のこと?

708 :NAME IS NULL:2019/06/19(水) 18:37:46.44 ID:???.net
>>707
そうでーす

709 :NAME IS NULL:2019/06/19(水) 21:31:08.45 ID:???0.net
市民権を獲た用語で会話しようよ……

710 :NAME IS NULL:2019/06/20(木) 19:09:36.26 ID:???.net
>>709
そんな難しい用語ださなくていいから、もっと単純にいこうぜ

711 :NAME IS NULL:2019/06/20(木) 19:33:32.53 ID:???.net
同じメモリー8GB
内部ストレージ500GB(HDD)Windows10
内部ストレージ240GB(SSD)debianGNULinux strech9

Windows10のpgAdmin4が初期起動スピードでLinuxに1分以上の差をつけられて
負けたわ糞

712 :NAME IS NULL:2019/06/20(木) 23:24:56.62 ID:???.net
>>711
そらそやろ。
SSDなんやから。

713 :NAME IS NULL:2019/06/21(金) 01:01:10.86 ID:???0.net
>>710
『市民権を獲た○○』はいくらなんでも市民権を獲たイディオムだろう……

714 :NAME IS NULL:2019/06/21(金) 04:59:30.51 ID:???.net
>>713
初回起動だけは我慢するしかない
2回目以降は同等に早い

715 :NAME IS NULL:2019/07/03(水) 14:27:59.47 ID:???.net
postgreSQLを勉強するついでに資格取りたいんだけど、OSS-DBしかない感じ?
参考書が古い・・・

716 :NAME IS NULL:2019/07/03(水) 19:41:30.29 ID:???.net
意味ない。取るならDBスペシャリスト一択。

717 :NAME IS NULL:2019/07/04(木) 12:59:21.92 ID:LHv+sZG8.net
複数の外部キーを複合主キーとして使うテーブルを作りたいんですが、以下のケースの場合はどうすればよいでしょうか?
---------------------------
クラス番号(主キー) | クラス名 |
       1     |  A組  |
---------------------------

---------------------------------------------
クラス番号(外部キー) | 出席番号(非ユニーク) | 氏名 |
      1       |      10        | Cさん|
---------------------------------------------
※クラス番号と出席番号の組み合わせで複合主キー

上記テーブルがある状態で、以下のテーブルを作りたいのですが、
出席番号が非ユニークな為、外部キーに出来ません。
サロゲートキーを使わずに、クラス番号と出席番号の組み合わせで複合主キーにしたいのですが、どうすればよいでしょうか。
------------------------------------------------
クラス番号(外部キー) | 出席番号(非ユニーク) |  情報 |
------------------------------------------------

718 :NAME IS NULL:2019/07/04(木) 15:07:07.21 ID:???.net
こうかな?

CREATE TABLE class (
id int NOT NULL PRIMARY KEY,
name text NOT NULL
);
INSERT INTO class(id,name) VALUES (1,'A組');
INSERT INTO class(id,name) VALUES (2,'B組');

CREATE TABLE person (
id int NOT NULL REFERENCES class(id),
number int NOT NULL,
name text NOT NULL,
PRIMARY KEY (id, number)
);
INSERT INTO person(id,number,name) VALUES (1,10,'Cさん');
INSERT INTO person(id,number,name) VALUES (2,10,'Dくん');
INSERT INTO person(id,number,name) VALUES (2,11,'Eくん');

CREATE TABLE info (
id int NOT NULL,
number int NOT NULL,
info text NOT NULL,
FOREIGN KEY (id, number) REFERENCES person (id, number)
);

INSERT INTO info(id,number,info) VALUES (1,10,'Cさんの情報1');
INSERT INTO info(id,number,info) VALUES (1,10,'Cさんの情報2');
INSERT INTO info(id,number,info) VALUES (2,10,'Dくんの情報1');
INSERT INTO info(id,number,info) VALUES (2,11,'Eくんの情報1');
/* INSERT INTO info(id,number,info) VALUES (1,11,'外部キー制約でエラー'); */

719 :NAME IS NULL:2019/07/04(木) 15:36:31.92 ID:???.net
>>718
神様ありがとうございます!
以下の1行をプラスして、完全に想定通りに動きました!
>>PRIMARY KEY (id, number)

CREATE TABLE info (
id int NOT NULL,
number int NOT NULL,
info text NOT NULL,
FOREIGN KEY (id, number) REFERENCES person (id, number),
PRIMARY KEY (id, number)
);

720 :NAME IS NULL:2019/07/04(木) 15:58:03.84 ID:???.net
すみません。動いたと思ったら微妙に違っていました。
以下の制約を付けて、正常に動きました!
ALTER TABLE info ADD CONSTRAINT info_fkey FOREIGN KEY(id, number) REFERENCES person (id, number)

721 :NAME IS NULL:2019/07/08(月) 21:33:25.93 ID:???.net
createuser -P -E ロール名
でパスワードを設定しても
そのパスワードを要求される場面がない。
CREATE ROLE ロール名 WITH PASSWORD '****';
でもそう。
なんのためのパスワードなんだろう?
localhostだけで使うなら無用なのかな。

722 :NAME IS NULL:2019/07/09(火) 00:12:06.67 ID:???.net
pg_hba.confでtrustになってるとか?

723 :NAME IS NULL:2019/07/09(火) 10:46:32.59 ID:???.net
pg_hba.confの設定はいじっておらず、
md5かpeerのいずれかです。
trustは一つもありません。

724 :NAME IS NULL:2019/07/09(火) 12:09:18.95 ID:???.net
peerで認証されてるんだろう
LinuxのアカウントとPgのロール名が同じで

725 :NAME IS NULL:2019/07/09(火) 20:15:55.28 ID:???.net
>>724
そうかもしれません。異常な挙動でなくて安心しました。
助言くださってありがとうございました。

726 :721:2019/07/13(土) 14:18:04.22 ID:???.net
pg_hba.confという設定ファイルの中の
local all all peer

local all all md5
に変更することでパスワードを指定して作成したロールから
localhostのPostgreSQLサーバに接続するときにパスワードを
要求されるようになりました。

727 :NAME IS NULL:2019/07/16(火) 22:19:30.50 ID:???.net
datdbaseをCREATEする権限をグラントするコマンドを教えてちょうだい

728 :NAME IS NULL:2019/07/16(火) 22:34:57.39 ID:???.net
まにゅあるよめ

729 :NAME IS NULL:2019/07/16(火) 22:38:58.77 ID:???.net
>>728
マニュアルのURLください

730 :NAME IS NULL:2019/07/17(水) 20:20:56.33 ID:???.net
>>729
mysql.com

731 :NAME IS NULL:2019/07/19(金) 00:31:07.94 ID:???.net
windowsなのですがまずdvdrental.tarをインポートするやり方からわからないです
教えてください

732 :NAME IS NULL:2019/07/19(金) 17:48:50.62 ID:???.net
>>731
ttps://dev.classmethod.jp/etc/postgresql-create-sample-database/

733 :NAME IS NULL:2019/07/19(金) 19:45:52.70 ID:???.net
そのまま丸写しではできなかったですがあちこちにに書いてあることを総合したらなんとかできました
どうも

734 :NAME IS NULL:2019/07/28(日) 16:59:44.95 ID:???.net
https://i.imgur.com/l91swsP.jpg

735 :NAME IS NULL:2019/09/21(土) 15:47:50.40 ID:???.net
pgadmin4でクエリエディタの内容をコピペする方法ないの?どうするのこれ?

736 :NAME IS NULL:2019/09/21(土) 15:57:33.31 ID:???.net
自己レス
ctrl+cかそうかわかった

737 :NAME IS NULL:2019/10/12(Sat) 16:35:01 ID:X6qnpHgK.net
職業訓練でポスグレやってるんですが、自宅でインストールして使おうとしたらコレが出たんですがどうすれば使えるようになりますか?
https://i.imgur.com/xDqFtox.jpg

738 ::2019/10/12(Sat) 18:17:02 ID:???.net
>>737
管理者でインストールした?
https://lets.postgresql.jp/documents/tutorial/windows/1

739 :NAME IS NULL:2019/10/12(土) 21:16:57.32 ID:X6qnpHgK.net
>>738
管理者としてインストールしました
何回か再インストールしてもダメなんです

740 :NAME IS NULL:2019/10/12(土) 21:19:47.52 ID:???.net
単にサーバー起動してないとか

741 :NAME IS NULL:2019/10/12(土) 21:39:06.71 ID:???.net
>>739
Windowsでの話?

環境何も書いてないのはエスパー求むってことか?

742 :NAME IS NULL:2019/10/12(土) 21:41:14.77 ID:???.net
あっ、psqlコンソールだな、スマン

743 :NAME IS NULL:2019/10/12(土) 21:59:56.75 ID:X6qnpHgK.net
>>741
Windowsです
サーバーソフトはtomcatを使ってます

744 :NAME IS NULL:2019/10/12(土) 22:23:00.80 ID:???.net
一応聞くけどポスグレのインストールはデフォルトでエンター連打でインストールしたって理解でいいか?

745 :NAME IS NULL:2019/10/12(土) 22:31:20.55 ID:???.net
>サーバーソフトはtomcatを使ってます

唐突に謎すぎるw
もしかしてデータベースサーバーというものを知らない?

746 ::2019/10/13(Sun) 07:05:44 ID:???.net
tomcatはjavaサーバーで今の問題には
特に関係ないからいいとして、
1.postgresqlをloalhostにインストールしているか?
2.postgresqlをport5432でインストールしているか?
3.windows上のサービスとして起動しているか?

この辺教えて

747 ::2019/10/13(Sun) 07:21:08 ID:???.net
それ以前にこれまでしてきたことと、その結果を時系列で書いてもらわんと
誰も何も分からないと思う。

748 ::2019/10/13(Sun) 19:42:33 ID:???.net
>>746
それを答えられるヤツは、あんな質問をしないやろ。w

749 ::2019/10/13(Sun) 22:08:54 ID:???.net
>>748
いや、それぐらいわかるだろー

750 :NAME IS NULL:2019/10/13(日) 23:34:58.96 ID:???.net
職業訓練でそんな授業あるんか
ええな
俺も行きたいわ

751 ::2019/10/14(Mon) 10:33:21 ID:???.net
>>750
15年ぐらい前だけど職業訓練の一環でうちの会社に訓練生が現場実習として2週間ぐらい来たことあったのでそう言う奴かも

752 ::2019/10/15(Tue) 07:10:38 ID:???.net
>>737
で、解決したんか?

753 :NAME IS NULL:2019/11/01(金) 10:42:33.99 ID:???.net
初心者的な事聞いていいっすか?

テーブルに時間として格納された整数値を現時刻と加算したいんだけどどうするの?

定数としては+ n hourで出来たけど、項目だとできなくて

754 :NAME IS NULL:2019/11/01(金) 14:29:13.51 ID:???.net
>>753
手元に環境ないから試してないけど
select CURRENT_TIME + make_interval(hours := xxx)
ではどうかな

755 :NAME IS NULL:2019/11/28(木) 15:54:59.03 ID:s00g5Y0p.net
>>753
時刻を数値で扱っている時点で初心者ではない。

756 :NAME IS NULL:2019/11/28(木) 17:45:40.87 ID:???.net
UNIX TIMEだろ?
それくらい誰でもするやろ。

757 :NAME IS NULL:2020/01/30(木) 22:37:00 ID:???.net
象なのか亀なのか

758 :NAME IS NULL:2020/01/31(金) 08:26:38 ID:???.net

オウム教が象被ってたから、日本ユーザ会が元々postgres95で使ってた亀を使ったという話。

759 :NAME IS NULL:2020/01/31(金) 23:19:07.06 ID:???.net
みてる人いて安心した

760 :NAME IS NULL:2020/03/27(金) 14:20:54.70 ID:vMnC9fl+.net
ageます
byポスグレ初心者

761 :NAME IS NULL:2020/04/09(木) 18:57:31.51 ID:yfcWG/vx.net
CREATE USERとCREATE TABLEとINSERTとUPDATEとSELECTぐらいしか使わない俺が来ましたよ!
ポスグレ触りだして10年以上たってるのに・・・

762 :NAME IS NULL:2020/04/09(木) 23:13:35.45 ID:???.net
DELETE使わないって全データ論理削除っすか?
と釣り針にかかってみる。

763 :NAME IS NULL:2020/04/10(金) 08:25:35 ID:???.net
CREATE DATABASEしないと…

764 :NAME IS NULL:2020/04/10(金) 20:03:09 ID:???.net
createdb使うから問題ない

765 :NAME IS NULL:2020/04/10(金) 20:22:52 ID:???.net
dropdb -h all -p all -d all -U all

766 :NAME IS NULL:2020/04/16(木) 08:34:16.05 ID:???.net
ALTER 使わないのは凄い

767 :NAME IS NULL:2020/04/16(木) 10:59:01.89 ID:???.net
設計が悪いから

768 :NAME IS NULL:2020/04/30(木) 23:41:57.94 ID:???.net
書き込みが無いのは「何も困ることが無い程良いDB」という認識で良いか?

769 :NAME IS NULL:2020/05/01(金) 08:43:39.38 ID:???.net
Oracleを仕方なく仕事で使い始めたが、PostgreSQLと比べてOracleのダメさが
使えば使うほど感じるようになり、このスレには何も書けない状態。

770 :NAME IS NULL:2020/05/01(金) 08:44:55.06 ID:???.net
言行不一致だな

771 :NAME IS NULL:2020/05/01(金) 09:07:29.45 ID:???.net
Oracleはドライバーの更新が遅すぎて世の中の流れに全くついていけてないからなあ

772 :NAME IS NULL:2020/05/01(金) 09:38:01 ID:???.net
高い金出せば楽できるDBMSならわかるけどOracleは金も手間もかかるからな
ライセンスのマージンが美味しいと思ってるアホなSI以外は使う理由がない

773 :NAME IS NULL:2020/05/01(金) 09:39:53 ID:???.net
なのになんで大規模なとこOracle使うんでしょうね

774 :NAME IS NULL:2020/05/01(金) 09:50:50 ID:???.net
>>773
いつの時代の話だよw
大規模ほどOracleなんて使わない

775 :NAME IS NULL:2020/05/01(金) 12:20:34.18 ID:???.net
>>772
>>Oracleは金も手間もかかるからな

MySQLやPostgreSQLへOracleから移行する例が少ないね
何でだろう

776 :NAME IS NULL:2020/05/01(金) 13:47:36.07 ID:???.net
>>775
「自分が知らない/調べられない== 少ない」と思い込みたいのかな?

ググればいくらでも出てくるし
シェアの変遷を見ればどこに移行してるかなんて明らか

777 :NAME IS NULL:2020/05/01(金) 15:22:46 ID:???.net
>>776
PostgreSQLへ移行してるって話かね
世界的にはMySQLだけど

778 :NAME IS NULL:2020/05/01(金) 15:52:56 ID:???.net
マリアちゃんやろ。

779 :NAME IS NULL:2020/05/01(金) 15:58:32 ID:???.net
Amazon Auroraじゃないか?

780 :NAME IS NULL:2020/05/01(金) 20:42:40.68 ID:???.net
結局RACだろ。RACがいらないならOracle使う意味はない。

781 :NAME IS NULL:2020/05/22(金) 20:35:02 ID:wpCETL3Y.net
ちょいと教えて欲しい。
psqlで
テーブル存在しない状態で
DROP TABLE IF EXISTS aaa;
をやると
NOTICE: table "aaa" does not exist, skipping
と表示されるけど、これを抑制するオプションとか無いかな?(´・ω・`)

782 :NAME IS NULL:2020/05/22(金) 21:00:45 ID:???.net
set client_min_messages = warning;
https://www.postgresql.org/docs/current/runtime-config-client.html#GUC-CLIENT-MIN-MESSAGES

783 :NAME IS NULL:2020/05/22(金) 22:11:07 ID:wpCETL3Y.net
>>782
ありがとう愛してる(´・ω・`)

784 :NAME IS NULL:2020/06/03(水) 22:04:55 ID:???.net
interval 型の列を分や秒の値にした結果をselect文で得るにはどうすればよいですか。
列1: name text型
列2: term interval型
select name, term, ??? from table1
得たい結果
期間1, 00:32:00, 32
期間2, 02:05:00, 125

785 :NAME IS NULL:2020/06/03(水) 22:33:07 ID:???.net
EXTRACT(EPOCH FROM INTERVAL term)で秒になる

786 :NAME IS NULL:2020/06/04(木) 01:20:56.02 ID:???.net
ありがとうございます!
明日試してみます!

787 :NAME IS NULL:2020/08/27(木) 10:19:05.33 ID:BWndbaWN.net
同一サーバ(PC)で、
データベース - スキーマ - テーブル
となっています。
別のデータベースのテーブルを直接参照する事は
できますか?

788 :NAME IS NULL:2020/08/27(木) 10:54:29.67 ID:???.net
dblinkかpostgres_fdw

https://www.postgresql.org/docs/current/postgres-fdw.html
https://www.postgresql.org/docs/current/contrib-dblink-function.html

789 :NAME IS NULL:2020/08/27(木) 16:41:53.26 ID:BWndbaWN.net
ありがとうございます。
頑張ってしらべてみます!

790 :NAME IS NULL:2020/09/07(月) 16:06:23.68 ID:???.net
PostgreSQLの初心者です。
バージョン11をLinuxディストロに入れました。
サーバーの起動方法がいくつかあることを知りました。
どれが正しいやり方なのか、あるいは異なる意味を持つ起動方法なのか
わかりません。
PostgreSQLをインストールしたときには
pg_ctlcluster 11 main start
という起動方法を指示されました。

PostgreSQL11のドキュメントにしたがってデータベースクラスタなるものを作成したときには、
pg_ctl -D /usr/local/pgsql/data -l <ログファイル> start
という起動方法を指示されました。

Linuxでサービスを管理をする方法として
systemctl start postgresql
service postgresql start
といったものもあります。

これらはそれぞれ違う用途による起動方法でしょうか?
それとも好きな起動方法を選択できるんでしょうか?
pg_ctlclusterがpostgresユーザー権限で操作できることは知っています。

791 :NAME IS NULL:2020/09/07(月) 17:27:41 ID:???.net
>>790
むしろ、Linuxの初心者でもあるな?
OSも書かんと。CentOS8?

792 :790:2020/09/07(月) 18:20:21 ID:???.net
>>791
返事くださってありがとうございます。Debian10です。
どの起動方法も可能ですが、
異なる起動方法によって何か挙動が異なるのか迷って
経験のある方に助言をいただきたくて。

793 :NAME IS NULL:2020/09/07(月) 19:33:56.19 ID:???.net
>>790
このドキュメントでいくつかの疑問が解けるかもしれない
https://wiki.debian.org/PostgreSql

794 :NAME IS NULL:2020/09/07(月) 20:00:31.66 ID:VUeEFudZ.net
>>792
やみくもにネットの情報を頼りにするより、ちゃんとまとまった古本でも買った方がいい。

何がなんだか自分でもわからなくなるぞ。PostgreSQLの世界はこれが普通というのがないんだから。

795 :790:2020/09/07(月) 20:41:28.81 ID:???.net
>>793-794
大変ありがたい助言。参考にさせていただきます。

796 :NAME IS NULL:2020/09/07(月) 20:58:30.91 ID:???.net
>>792
Linuxがsystemd系ならsystemctlコマンドを使うべきだと思う。
挙動が違うかどうかは設定による。

そのへんが気になるなら、他人に聞くのではなく、自分で自分のマシンを確認するべき。
man systemd.serviceとかから?

https://qiita.com/JhonnyBravo/items/a28074c20fa9adf02be3

797 :790:2020/09/09(水) 16:37:03.51 ID:???.net
>>796 ありがとうございます。

その後、さらにいろいろ調べつつ試した結果、
PostgreSQLには同じ操作をするのにいくつかの異なる方法(ラッパー)が用意されていて
複雑であることが分かりました。

Linuxディストリビューションのパッケージを利用した場合、
そのディストロの流儀に第一に従うべきかもしれません。

とすると、root権限でもってsystemctlかserviceコマンドでPostgreSQLサーバを起動することになりそうですが、
PostgreSQL11のドキュメントには次のように書かれてありました。
https://www.postgresql.jp/document/11/html/server-start.html
{何を実行するにしても、サーバはPostgreSQLユーザアカウントで起動させなければなりません。
rootであってはいけませんし、他のユーザでもいけません。}
このドキュメントに従う場合、systemctlやserviceは使えなさそうです。

しかしpostgresになってpg_ctlclusterで起動したとき、
Warning: the cluster will not be running as a systemd service. Consider using systemctl
という警告メッセージが表示されるのでsystemctlを使うべきことを示唆しているように思えます。

ちなみに、pg_ctlclusterを使って起動した場合、
systemctl status postgresqlでは停止中と表示されてしまいます。

今のところ分かったのはこんなところです。
何かお気づきの点があったら助言いただけるとありがたいです。

798 :790:2020/09/09(水) 17:20:50.29 ID:???.net
pg_ctlclusterを使って起動した場合systemctlには反映されず、
systemctlを使って起動した場合pg_ctlclusterに反映されます。

799 :NAME IS NULL:2020/09/09(水) 18:30:21 ID:???.net
>>797
ためしにrootでsystemctl startしてから、起動されたプロセスのユーザーをpsでちゃんと確認してみろ。
rootで実行したからって、プロセスがrootとは限らん。
サービスの多くは専用ユーザーを割り当てるのがあたりまえ。ドキュメントにあるのはその念押しみたいなもん。

詳しくは、マシンにたぶんあるサービスのユニットファイル(サービス名.service?)を探して読め。
なかったら、init.dの起動スクリプトかな?
どうやって起動するかが書いてあるから。ユーザーとかオプションとか。

800 :790:2020/09/09(水) 18:48:03 ID:???.net
>>799
おっしゃるとおりでした。ps axuで調べたらUSERがpostgresでした。

801 :NAME IS NULL:2020/09/09(水) 19:01:08 ID:VZtlwKPH.net
ポスグレはOSと密接だからrootユーザーが基本。

SQL Serverは管理者権限のあるローカルユーザー

Oracle DatabaseはOracle Database専用ユーザーを作って使用する

802 :NAME IS NULL:2020/09/09(水) 20:06:38 ID:???.net
>>801
ウソをいうな

803 :NAME IS NULL:2020/09/09(水) 22:26:31.64 ID:YAfXARE7.net
自分の知っている世界だけでものをいうやつは必ずいる。

必ずこうと言っているわけではないので、その人の主観ではおかしいことになるのは理解できる。

804 :NAME IS NULL:2020/09/09(水) 22:29:22.49 ID:YAfXARE7.net
ポスグレに関してはrootユーザー以外なら、ポスグレ専用ユーザーを作って使う。ポスグレがOSSだと知っていれば、いろんな権限がないと不都合なので、自身があれば自由にしてくれ。

805 :NAME IS NULL:2020/09/10(木) 09:41:30.72 ID:???.net
基本postgresで起動してます。

806 :NAME IS NULL:2020/09/10(木) 10:54:47.51 ID:???.net
まあ、ユーザーをそんなに意識することはないけどな。
サービスが起動されるときに自動的に使用されるもんだし、ログインして使うもんではないし。

807 :NAME IS NULL:2020/09/10(木) 13:55:02.68 ID:OD4PsCxP.net
>>806
はあ?

808 :NAME IS NULL:2020/09/10(木) 13:56:08.44 ID:OD4PsCxP.net
どのOSユーザーで動いているのか意識しないなんてありえないだろ

809 :NAME IS NULL:2020/09/10(木) 15:16:28.78 ID:???.net
いちいち意識なんかしねえわ。
最初にきっちり設定しとけよ。

810 :NAME IS NULL:2020/09/10(木) 16:10:55.82 ID:wACcj8kK.net
はあ?

811 :NAME IS NULL:2020/09/10(木) 17:39:36.71 ID:wACcj8kK.net
>>809 みたいなのがいるから、rootユーザーを使うことになったりする。

812 :NAME IS NULL:2020/09/10(木) 19:22:55.74 ID:???.net
>>811
逆やろ。
文盲かな?

813 :NAME IS NULL:2020/09/10(木) 21:58:14.13 ID:OD4PsCxP.net
OSSなのに他人にお膳立てしてもらうが当たり前というのはおかしすぎる。

814 :NAME IS NULL:2020/09/11(金) 18:24:10.01 ID:???.net
てかrootでは動かさないでしょ。

815 :NAME IS NULL:2020/09/11(金) 21:07:36.13 ID:gHndXZTs.net
それはそれなりの知識があるひと

816 :NAME IS NULL:2020/09/13(日) 15:02:23.76 ID:???.net
Webプログラム上にrootという名前とパスワードを書き込んでおくのは常識

817 :NAME IS NULL:2020/09/14(月) 00:56:50.02 ID:ix9Okpm5.net
なぜマルチユーザーにしないといけないのかわかってないやつは、結局、何もかもできる便利な管理者ユーザーでやってしまう。

818 :NAME IS NULL:2020/09/24(木) 22:30:22.33 ID:???.net
13出たねー

819 :NAME IS NULL:2020/09/29(火) 01:09:03.01 ID:???.net
学習していて、継続的アーカイブとポイントインタイムリカバリがよく分からないのですが・・・・
https://www.postgresql.jp/document/12/html/continuous-archiving.html
https://youtu.be/MCgWUyKQ6YM?t=2744
リストア時に消してしまうWAL(動画でいうWAL1~3)は、なぜ消してしまって復元できるのですか?
ドキュメントの方には、
>少なくともバックアップの開始時点まで遡る、連続した一連のアーカイブ済みWALファイルが必要です。
と買いてあるにもかかわらず、WAL1~3が抜けてしまって戻せる理由のが不思議でたまりません

820 :NAME IS NULL:2020/09/29(火) 02:07:57.19 ID:wMnFSP7q.net
>>819
それ資料と説明の仕方が悪いと思う。
WAL1〜3はアーカイブ(バックアップ)されているから大丈夫という意味だけど、メトロの女講師の説明がおかしくてわかりにくくなっている。

この講師の説明だとわかっている人間でないとわからないと思う。

821 :NAME IS NULL:2020/09/29(火) 16:56:32.04 ID:???.net
勝手にぽすぐれって読んでたんですが、みなさんぽすとぐれすって読んでるんですか?

822 :NAME IS NULL:2020/09/29(火) 17:22:07.67 ID:???.net
「ぽすとぐれすきゅーえる」

823 :NAME IS NULL:2020/09/29(火) 17:41:35.06 ID:???.net
はんぐれ

824 :NAME IS NULL:2020/09/30(水) 00:42:01.27 ID:w9Daxpvz.net
>>820
アーカイブされたWALはどこかにあるのが前提なんですね
ありがとうございます

825 :NAME IS NULL:2020/10/01(木) 02:02:26.43 ID:WR+ww7MA.net
>>821
ポスグレと呼ぶのは日本の通称

ポストグレスは英語圏の通称

ポストグレエスキューエルは、最近では無難な言い方。

ポストグレスキューエルは英語圏のださいオナニー表現で、あまり言われない。

技術者同士ならポスグレ、外国人がいる場合はポストグレス、一般人がいる場合はポストグレエスキューエル。

もともとはPostgresが製品名だから、グローバルではポストグレス。

826 :NAME IS NULL:2020/10/01(木) 02:05:54.15 ID:WR+ww7MA.net
>>824
アーカイブファイルに同じ番号をつけて説明しているから、あの動画はわかりにくい。

あの動画のメトロの女の知識があやしい。本当に理解してないのに台本を読んでいるから、あんな体たらくになっている。

827 :NAME IS NULL:2020/10/01(木) 08:54:10.41 ID:???.net
>>825
ポスグレって読んでたのが自分だけかと思ったのですが、日本の通称ならまあ間違いではなかったということですね
それなら今後もポスグレでいきます

828 :NAME IS NULL:2020/10/01(木) 10:58:47.09 ID:???.net
ポスト+イングレスが語源なんだから、やっぱポストグレスがかっこいいでしょ!

829 :NAME IS NULL:2020/10/01(木) 11:47:46.04 ID:???.net
英語ではpost-gresで2音節だけど
日本語でポストグレスというと6音節と長く
さらに「ト → グ」が発音しにくいので
ポスグレという呼びやすい略称が定着

830 :NAME IS NULL:2020/10/01(木) 14:45:35.94 ID:???.net
フルマネージドで外部から使えるサービスで、一番安いのってどこですか?
素人管理はやっぱ危ない気がしてきたぜ

831 :NAME IS NULL:2020/10/02(金) 02:31:25.84 ID:yhrmxStj.net


832 :NAME IS NULL:2020/10/07(水) 00:15:45.67 ID:5apiOPUy.net
>>830
AWSのRDS serverlessはどう?
要件わからんけど運用の手間はほとんどかからないイメージだけど。

833 :NAME IS NULL:2020/10/07(水) 00:17:29.38 ID:???.net
aurora serverlessだ

834 :NAME IS NULL:2020/10/07(水) 01:08:35.95 ID:???.net
インフラもアプリも手間がかからないように開発しないと手詰まりになる

835 :NAME IS NULL:2020/10/08(木) 17:51:39.15 ID:???.net
Herokuのが比較的安いんじゃないの?

836 :NAME IS NULL:2020/12/15(火) 20:25:47.29 ID:???.net
13.1でレプリケーションできない……

837 :NAME IS NULL:2020/12/23(水) 13:19:29.30 ID:???.net
ロジカルレプリケーションで質問
pgadmin上からCREATE PUBLISHは出来たのにCREATE SUBSCRIPTIONがクエリ処理中のまま帰ってこない…これは何故?
wal_levelはパブリッシュ側、サブスク側共にlogicalにしてる
他になんか設定抜けてる?
アクセス設定は
all all 0.0.0.0/0
とかにはしてあるんだけど…

838 :NAME IS NULL:2020/12/23(水) 14:56:50.38 ID:???.net
自己解決
というかアクセス設定をmd5からtrustにしないとダメなの?
んー、なんか納得いかないんだけど…

839 :NAME IS NULL:2020/12/23(水) 16:05:08.25 ID:???.net
連投で申し訳ない
パブリッシュ、サブスクそれぞれの現在の状態ってどうやれば取れるの?
とあるホストで動いてるパブリッシュの一覧とか
サブスク側のサブスク一覧とか
エラーで止まってるとか、動いてるとかそういうの

840 :NAME IS NULL:2020/12/23(水) 23:11:00.97 ID:???.net
pg_stat_replication
pg_stat_subscription
かな。
状態確認するのならまず統計情報ビューを確認。
一覧だけならpsqlのメタコマンドにもあるみたい。

841 :NAME IS NULL:2020/12/23(水) 23:13:27.78 ID:???.net
>>840
サンクス
明日やってみる

842 :NAME IS NULL:2021/02/02(火) 20:47:00.35 ID:???.net
あああああ
どこ見ても関数の引数がNULLだったときの動作が書いてない
なんかNullになるっぽいことが質問サイトとかかいてあるが
確実なことがなんもわからん

ただのTO_CHAR
公式ドキュメントから
SQL標準
はてはOracleまで似た情報内科みたのに

めちゃくちゃよく起こることじゃん
なんで?どうなってんのこれ?!

843 :NAME IS NULL:2021/02/02(火) 21:57:46.85 ID:???.net
SQL標準じゃなかったなんだこれ
有料って

844 :NAME IS NULL:2021/02/03(水) 07:40:50.28 ID:???.net
>>842
元々Oracle使ってた?
Oracleのnullの扱いが特殊で、nullに甘いと言うか…
気をつけた方がいいよ
特に文字列項目はnull非許容にした方が良い

845 :NAME IS NULL:2021/02/07(日) 21:14:06.54 ID:tjjYr/7qk
努力不足でSES? それ、合ってます。
https://www.youtube.com/watch?v=TzGhxNjLsbM
僕が受託系やSES系の企業さんをお薦めしていない理由を改めて説明します。
https://www.youtube.com/watch?v=f3HHw7ycYrc
SIerでの経験は「コンビニのバイト」程度に考えておくのが賢明です。
https://www.youtube.com/watch?v=9if5HdRl62s
新卒カードをSIer系企業で使ってしまうことが得策でない理由
https://www.youtube.com/watch?v=43Da2BKG99c
SES契約ではなく「SES系企業の社員になるメリットの低さ」が問題な件
https://www.youtube.com/watch?v=WaVFfIXWR-0
「競技プログラミング(競プロ)」の有用性に関する個人的見解
https://www.youtube.com/watch?v=PhJQTbaiZZ0
ガリ勉エンジニアを「囚人のジレンマ」から救いたい
https://www.youtube.com/watch?v=iCkpuxkbxJg
男性エンジニアがモテない3つの原因とその対策
https://www.youtube.com/watch?v=zOZcmc09BFc
男性エンジニアの「技術追いかけてもモテない問題」について語ってみる
https://www.youtube.com/watch?v=ryHp1VPZ3Bo

846 :NAME IS NULL:2021/02/09(火) 16:21:00.20 .net
PGMiner 対策セキュリティとして、信頼できないユーザから pg_execute_server_program 特権を剥奪する手順を教えてください

847 :NAME IS NULL:2021/02/17(水) 12:01:52.89 ID:Cviyj/uB.net
PGMinerって初耳でした。難しいことやっているんですね。
でもそもそも信頼できないユーザからは実行出来なければいいんじゃないですかね?
とはいってもそんなことは百も承知だとは思うので、もしよかったらなんでユーザ制御のみではいけないのか教えてもらえませんか?
どういうシステムか興味があるので。

848 :NAME IS NULL:2021/02/26(金) 00:22:50.28 ID:???.net
pg_execute_server_programって明示的に与えない限り付与されないんだから、
管理者権限の管理と監査しかないんじゃないの。

849 :NAME IS NULL:2021/03/30(火) 20:11:49.15 ID:???.net
>>841です
色んな状態をPgAdminのクエリから取得出来るのは分かったけどロジカルレプリケーション自体を管理するソフトみたいなのはないのね…
ロジカルレプリケーション管理ソフトのオススメあったら教えて
出来ればGUIでグラフィカルにこのマシンのこのDBをPUBLICATIONに設定
別のマシンのこのDBをドラッグ&ドロップでSUBSCRIPTIONに設定みたいなソフトあると嬉しい
無いなら管理ソフト作るつもりだけど…面倒なので既にあるならそっち使いたい…

850 :NAME IS NULL:2021/04/17(土) 07:20:29.92 ID:???.net
JDBCがExceptionでもエラーログ吐かないとかあたまおかしくないですか

851 :NAME IS NULL:2021/04/19(月) 23:40:19.66 ID:???.net
JDBCドライバがログ吐くの、それめっちゃウザいのでは…
それくらいアプリ側で捕捉して、アプリ側が思うようにログ吐こうぜ

852 :NAME IS NULL:2021/04/23(金) 09:42:53.86 ID:???.net
【IT】横浜銀行が脱メインフレーム。Redhat+PostgreSQL+COBOLでオープン系に移行。
https://hayabusa9.5ch.net/test/read.cgi/news/1618999863/

853 :NAME IS NULL:2021/04/23(金) 10:12:55.83 ID:???.net
Windows10でグループポリシーのスタート/シャットダウンスクリプトで他PCにSQLコマンド送信しようとすると止まってしまうけやり方が悪いんかな

854 :NAME IS NULL:2021/04/24(土) 13:43:32.69 ID:???.net
>>852
NetCOBOLでプログラムソース引き継ぎリコンパイルか
大変だな

855 :NAME IS NULL:2021/04/27(火) 23:48:06.73 ID:???.net
Windowsでログを日本語にしている場合、基本Shift-JISだけどたまにUTF-8で書かれて文字化けするのどうすばなおるの?
例えばこれはUTF-8で書かれてしまう "自動VACUUM: 孤立した一時テーブル"postgres.pg_temp_3.fetchchunks"を削除します"

856 :NAME IS NULL:2021/04/28(水) 15:09:49.51 ID:???.net
shift-jisでログを吐くように設定すれば良いのは?

857 :NAME IS NULL:2021/04/29(木) 00:13:03.06 ID:???.net
japanese_japan.932に設定しててほとんどはそれで書き込まれるけどごく一部だけ文字化けしてる。試しにUTF-8で開いたらその文字化けしてた行だけは読めた

858 :NAME IS NULL:2021/05/02(日) 19:46:23.65 ID:wsYqUZcK.net
いまどきSJISにこだわる方がめずらしい

859 :NAME IS NULL:2021/05/25(火) 22:01:00.99 ID:RGVH5/nc.net
pgAdmin3ってPosgreのバージョンいくつまで対応してるの?
pgAdmin4はブラウザアプリになっちゃって使い悪すぎる・・・

860 :NAME IS NULL:2021/05/26(水) 12:21:57.19 ID:???.net
>>859
4が9.2からだから、その前までじゃね?
あと、PostgreSQLね

861 :NAME IS NULL:2021/05/28(金) 01:23:41.94 ID:???.net
PostgreSQL 13のCOPYコマンドでCSVファイルをテーブルへインポートするとき、
CSVファイルの一行あたりの値の数とテーブルの列数が同じときは
テーブルの列名を指定しないでもインポートできるじゃないですが

これなんですが、CSVファイルは1行にデータが500個あって、テーブルが501列ある、なんて場合、
列名を指定しないと「missing data for column 〇〇」なんて出てしまいますが、エラーを出させず、
テーブルの先頭500列にだけ値を入れたいって場合って、
やっぱりCOPYするときに列名を指定しないとダメですかね

同じようなことをしたいテーブルが沢山あるのですが、列数が200とか300とかそんなのばかりで
どうにか手間をかけずにできないか方法探してます

862 :NAME IS NULL:2021/05/28(金) 10:12:09.01 ID:???.net
COPYコマンドだけで対処する方法はないんじゃないか?

csvkitみたいの使ってCOPY FROM PROGRAMするか
カラム指定付きのCOPYコマンドを生成する簡単なスクリプトを書くかかな

863 :NAME IS NULL:2021/05/28(金) 15:35:39.72 ID:+xuXkEOK.net
csvの全ての行の最後にカンマ入れればいいんじゃない?

864 :NAME IS NULL:2021/05/29(土) 13:46:07.10 ID:???.net
回答どうもです

>>862
そうですか…
COPYコマンド作成スクリプト、かなぁ

>>863
たしかにそれもよさそうですね


やり方考えてみます

865 :NAME IS NULL:2021/06/07(月) 04:37:49.35 ID:sL2Hb5mR+
> 在日の親は、子供を朝鮮幼稚園・朝鮮学校に入れたいっていうのが多いのよ。
> 日本人からすると、なんでだろうって思うけど、日本人の学校では、民族の誇りを持った教育がしてもらえないんだそうだ。
> よく分からないけど、済州島の流刑者の白丁が大阪に密入国して住み着いたじゃ誇りが持てないけど、
> 日本人に強制連行された被害者なら誇りが持てる、とかそういう事かな??
>
> 市原市の能満は昔から市街化調整区域で、新規の建物は造れないことになっている。
> そのため土地が安く、日本の法律を無視した在日が、次々と移り住んできた。
> そこで問題になったのが、朝鮮学校だ。なかなか許可が下りず、一番近くても千葉市にしかない。
> そこで在日居住区の能満内にあった、能満幼稚園・市原小・市原中・緑高の保育士や教師を、朝鮮化する事を考えた。
> 今では在日幼稚園の保育士は全て朝鮮帰化人で、在日の父兄からの絶大な支持を受けている。
> 遠くからでも、わざわざ在日幼稚園に入園させたいという在日の親は、後を絶たない。
> この在日幼稚園卒園者はほぼ朝鮮系の帰化人と在日だ。

866 :NAME IS NULL:2021/06/09(水) 17:17:07.70 ID:AdD21f7d.net
Pgadmin4 で外部プログラムを呼び出したり
プラグインを追加したりってどうやったらできますでしょうか。

867 :NAME IS NULL:2021/06/12(土) 17:46:40.22 ID:???.net
すいません。教えてください。

Win10にPostgresqlを何度かインストールしているのですが、psqlに”そのパスワードしらね”って言われてしまいます。

此方を参考にしてみたんですが、pgpass.confが見つかりませんでした。
他に何かインストール時に気を付ける事は有りますか??

868 :865:2021/06/12(土) 19:38:34.99 ID:???.net
解決しました。どうもすいません。

869 :NAME IS NULL:2021/06/13(日) 01:12:12.03 ID:???.net
>>868
気にすんなよ

870 :NAME IS NULL:2021/06/20(日) 17:27:25.64 ID:SzsdKFeb.net
PostgreSQL 10 で判らないことあるんだけど、教えてクレメンス・・・m(_ _)m

バージョン10.16(Ubuntu18.04 LTSの aptコマンドで入れられる最新?)でDBの操作は全部phppgadmin入れてブラウザからやってる.
で、phppgadminで「SQL」ってリンクがあってそれを使ってSQL実行するとエラーになる。
phppgadmin使うのが悪いのか、phppgadminで書いてるSQLが悪いのか、ほかに理由があるのか、素人なのでわからんのです。

tagIndexっていうテーブルを作って、booleanでoutputflag ってのを定義しておいて、
UPDATE public."tagIndex" SET outputflag='f
で「tagIndexっていうテーブルがない」(relation "public.tagIndex" dose not exist)って怒られる。

C#のNpgSQLつかってupdate文でそのテーブルの更新はできてる。
phppgadminで中身弄ろうとしてうまくいかない。
エラーになってるSQLが、SET句でエラーになるなら 'f' じゃなくて false と書けばいいんじゃね?とか想像つくけどテーブルが無いといわれるとお手上げっす・・・orz

871 :NAME IS NULL:2021/06/20(日) 17:51:48.33 ID:???.net
自己解決。
update "public"."tagIndex" SET outputflag=true;
で行けた。
public."テーブル名” と "public"."テーブル名" っていう、スキーマも "" でくくってるかどうかの違いだけ・・・?
83.とか9.2の頃はこんなことやらなくてもよかったような覚えがあるから「面倒になったなー」ってのが正直な感想でした・・・

872 :NAME IS NULL:2021/06/21(月) 08:26:27.75 ID:???.net
> UPDATE public."tagIndex" SET outputflag='f';
PostgreSQL 11.10でも別にエラーにならないみたいよ
ttps://extendsclass.com/postgresql/4f05be9

873 :NAME IS NULL:2021/07/29(木) 19:18:55.63 ID:???.net
PostgreSQLでのテーブルの列数の上限は1,600列までですが、
私のデータでは5,000列のテーブルが必要です。
先ほどCREATE TABLEをしようとしたらエラーが出ました。
列数が3列のときは正常にテーブルが作成できます。

多分、1,000列ずつに分割して、あとで結合するのだと思いますが、
その参考となるサイトをご存じないでしょうか?
検索してもまったく見つかりません。

874 :NAME IS NULL:2021/07/29(木) 19:45:38.07 ID:???.net
>>873
この辺が参考なるかも。

https://dba.stackexchange.com/questions/40137/in-postgresql-is-it-possible-to-change-the-maximum-number-of-columns-a-table-ca

875 :NAME IS NULL:2021/07/29(木) 20:21:10.97 ID:???.net
>>873
共通のPrimary Key + 他の列で分割すればいいだけ

まあ5,000列はRDBで扱うのに適さないから
リファクタリングするか目的に適した別の仕組みを使ったほうがいいぞ

876 :NAME IS NULL:2021/07/29(木) 22:51:58.63 ID:???.net
>>874
ありがとうございます。
そのサイトは質問前に読んでいましたが、具体的にイメージできなかったです。

一人目の回答者の勧めるソースコードの変更は、
不具合が出るリスクがある上に、会社の他の人たちにも使ってもらうので難しいです。

二人目の回答者は、複数のテーブルに保存し、Viewを使ってデータを提供する方法を勧めているようです。
ただ、Viewもテーブルと同様の列数の制限がある、と書いてあるので
「結局、できるの?できないの?どっちなの?」という感じです・・・。
ちなみに、ユーザーはGUIで操作するだけで、クエリーはそれに基づいてプログラム内で生成するので、
ややこしいクエリーになっても対応できます。

三人目の回答者は、
1. 1,600列無くてもいいように再設計する
→できるならそうしたいですが、方法が分かりません

2. 超過した列にはJSON/JSONBフィールドを使う
→JSONは分かりますが、どんな技なのか分かりません

3. スプレッドシートのようなテーブルにする
→これは、spreadsheet_tableが親でspreadsheet_cellが子みたいになっていて、
spreadsheet_cell一つにつき一つのデータが入るようになっていますか?
(行、列)を(1, 1), (1, 2), (1, 3), …と変えていくことでセルの位置を指定できるみたいですね。
ただ、検索などは非常に遅そうですね…。

877 :NAME IS NULL:2021/07/29(木) 23:11:16.18 ID:???.net
>>875
ありがとうございます。

> 共通のPrimary Key + 他の列で分割すればいいだけ

具体的にはどうなりますか?
私の場合を説明しますと、
データ列が始まるまでに5列ほど属性がありまして
そのうちの最初の2列がPrimary Keyです。

一枚岩だとこんな感じです:

Lot (PK), Number (PK), X, Y, Z, Data0001, Data0002, ... Data5000

これを
Lot (PK), Number (PK), X, Y, Z, Data0001, Data0002, ... Data5000
Lot (PK), Number (PK), X, Y, Z, Data1001, Data1002, ... Data2000
Lot (PK), Number (PK), X, Y, Z, Data2001, Data2002, ... Data3000
Lot (PK), Number (PK), X, Y, Z, Data3001, Data3002, ... Data4000
Lot (PK), Number (PK), X, Y, Z, Data4001, Data4002, ... Data5000
…に分ける感じですか?

ただ、これだとX, Y, Zが無駄に被るので正規化して
Lot (PK), Number (PK), X, Y, Z
だけのテーブルを作り、
Lot (PK), Number (PK), Data0001, Data0002, ... Data5000
Lot (PK), Number (PK), Data1001, Data1002, ... Data2000
Lot (PK), Number (PK), Data2001, Data2002, ... Data3000
Lot (PK), Number (PK), Data3001, Data3002, ... Data4000
Lot (PK), Number (PK), Data4001, Data4002, ... Data5000
…にする感じでしょうか?

878 :NAME IS NULL:2021/07/30(金) 05:02:43.72 ID:???.net
>>877
それよほど特殊な事情がない限りRDB的には列持ちじゃなく行持ちにするケースだと思う

親テーブル: Lot (PK), Number (PK), X, Y, Z
子テーブル: Lot (PK), Number (PK), Data_No (PK), Data

この形だと親テーブルのレコード1件に対し子テーブルのレコードが5000件

特殊事情があるなら
そういう同じ種類のデータの繰り返しはArray Type使う
https://www.postgresql.org/docs/13/arrays.html

879 :NAME IS NULL:2021/07/30(金) 09:29:15.13 ID:???.net
>>873
これは余計なお世話だけど、どの設計がよいかを単体で検証すると思うんだが、
将来的にデータ量や参照量や更新量が増えた場合の速度低下(レスポンス)や、
データ構造(列数とかデータ型)が変わったときの保守に要する時間(ダウンタイム)も考慮して
比較したほうがいいぞ。大量の実データがなくてもダミーデータを生成して。

880 :NAME IS NULL:2021/07/30(金) 11:10:13.47 ID:???.net
>>879
>>876なんやで?
ムリムリ!w

881 :NAME IS NULL:2021/07/30(金) 13:20:59.93 ID:???.net
>>879
>将来的にデータ量や参照量や更新量が増えた場合

そういう用途だとは思えないけどな

882 :NAME IS NULL:2021/07/30(金) 15:12:00.47 ID:???.net
>>878
ありがとうございます。

>親テーブル: Lot (PK), Number (PK), X, Y, Z
>子テーブル: Lot (PK), Number (PK), Data_No (PK), Data
>
>この形だと親テーブルのレコード1件に対し子テーブルのレコードが5000件

はい、エラーが回避できるならその形式でもいいです。
ただ、行も10万件/1製品ぐらいあります。
この場合、1製品分の全データだと

親テーブルのレコードが100,000件
子テーブルのレコードが5,000件*100,000件=500,000,000件 (5億件)

…になります。
しかも、こういうデータが数十製品あります。
これは特殊な事情に該当しますでしょうか?

ちなみに、データ部分は同じ種類のデータの繰り返し(すべてfloat)ではあります。

上記を踏まえますと、Array Typeの方が近道そうでしょうか?
すみません、DBはド素人ですので…。

883 :NAME IS NULL:2021/07/30(金) 15:25:46.09 ID:???.net
>>879
ありがとうございます。

仰る通り、実行速度や保守性も考慮したいです。
5,000列というのは平均値で、増える傾向にありますが、今後も10,000列は超えないと予想されています。

データ自体は一度読み込んだら更新は必要ありませんが、計算結果はDBに残したいです。
新規製品のテーブル追加は大量に発生します。

大量の実データは既にあります。

884 :NAME IS NULL:2021/07/30(金) 15:38:23.12 ID:???.net
>>880
きっと、私の実力的に無理という話ですよね。
DBはド素人で、このデータ量でどのぐらいの速度で動作するのか不明なので、
まずは動作するものを実装したいです。

885 :NAME IS NULL:2021/07/30(金) 15:47:22.90 ID:???.net
>>881
そういう用途に該当するかどうか、軽く説明しておきます。

1製品のデータ量は
100,000行
10,000列
が上限とします。
しかし、そんなデータが数十製品×数十ロットあります。

参照量はユーザー数が増えると増えますが、
ユーザー数は多くて300人程度、
同時に使用するのは多くて10〜20人程度と考えます。

(計算結果をDBに残さずに、Excel形式で残す方式であれば)
更新量をゼロにできます。

886 :NAME IS NULL:2021/07/30(金) 15:57:18.46 ID:???.net
それだけの規模は、まったくの初心者がやるもんでもなさそうな。
失敗上等な状況ならええけど。

ほかに頼んだほうがええんちゃうかなー。。。

887 :NAME IS NULL:2021/07/30(金) 15:59:22.09 ID:???.net
>>882
どういう構造にするのがいいかはデータ量やデータ型以外にそのデータをどう利用するのかに強く依存してる

特殊事情ってのは行持ちだとどうしても困る、求められる要件を実現できないという事情

その判断自体が難しいようなら
性能面の検証も含めてDB設計してくれるところに依頼するか
自分で色んなやり方を試して検証してみるかになるよ

888 :NAME IS NULL:2021/07/30(金) 16:38:12.93 ID:???.net
読み取り専用で特定のデータ列だけ欲しいとか
特定のデータ列がある範囲にあるものが欲しいとかそういうクエリがなくて
データ列は常に全部一括で取得して計算処理する前提なら列持ち(横持ち)を軸に考えてもいいと思うよ

その場合は自分ならまずArrayを試す
(RDB前提でかつPostgres前提の場合に限るけど)

889 :NAME IS NULL:2021/07/30(金) 16:40:06.84 ID:???.net
時系列の生の実測データだとは思ってたけど
それ300人で使うってなんかすごいね

サマったデータだけ使えればいいような気がするんだけど
300人が違う角度で生データから統計処理とかしたい感じなのかな?

890 :NAME IS NULL:2021/07/30(金) 16:40:26.34 ID:???.net
>>886-887
お二人ともありがとうございます。

そうですね、まったくの初心者にしては規模が大きいですよね。

お陰様で、いくつか選択肢が見えてきたので、まずは自分で試してみます。
Array Typeが条件(同じ種類のデータの繰り返し)に合ってそうなので、まずはそれを実装してみます。
行持ちも出来るならやってみて実行速度などを比較できるといいですね。

891 :NAME IS NULL:2021/07/30(金) 16:47:46.33 ID:???.net
>>888
ありがとうございます。

はい、全部一括で計算処理する前提です。
すみません、列持ち(横持ち)というのは、私が>>877で書いた、

Lot (PK), Number (PK), X, Y, Z
だけのテーブルを作り、
Lot (PK), Number (PK), Data0001, Data0002, ... Data5000
Lot (PK), Number (PK), Data1001, Data1002, ... Data2000
Lot (PK), Number (PK), Data2001, Data2002, ... Data3000
Lot (PK), Number (PK), Data3001, Data3002, ... Data4000
Lot (PK), Number (PK), Data4001, Data4002, ... Data5000

…のような感じでしょうか?

Arrayが良さそうなんですね。
環境は RDB かつ Postgres ですのでOKです。
では、やはりまずはArrayから試してみます。

892 :NAME IS NULL:2021/07/30(金) 16:52:57.74 ID:???.net
>>889
はい、その通りです。
基本の統計情報は全部一括ですが、
測定項目同士の相関などは各人が個別に見る感じです。

893 :NAME IS NULL:2021/07/30(金) 18:24:46.83 ID:???.net
Lot,Number毎に扱うのであれば、
Lot (PK), Number (PK), X, Y, Z, data
ってテーブルにして、データをJSONとか扱いやすいテキストにしてdataカラムにぶちこんでおくってのも楽かもよ

894 :NAME IS NULL:2021/07/30(金) 19:10:18.41 ID:???.net
列の変更があったらALTER TABLEなん?
死にそう。w

895 :NAME IS NULL:2021/08/02(月) 18:45:31.61 ID:XpIbH7zgX
6938双信電機株。
アマゲン氏提供の低位株&ストップ高銘柄(8月版)
更にこれ以上に上げてくる稼げる銘柄をゲット!
爆上げする銘柄でお金相当増えます! 
短期急騰株はアマゲンさんがプロ過ぎます。

896 :NAME IS NULL:2021/08/04(水) 10:33:52.80 ID:wV6VxXcY.net
1つのテーブルがそんなに大きいなんて、やりたいことは単純かもしれないけど、運用は上級じゃない?
300人もいるなら他に誰か適任者いないの? 悲惨な未来しか見えない。。
そもそも新人だって言うなら、クリティカルな業務ではないのだろうけど。

897 :NAME IS NULL:2021/08/04(水) 11:59:15.12 ID:???.net
システムのユーザーから適任者を探すなよw

898 :NAME IS NULL:2021/08/25(水) 11:23:43.02 ID:???.net
Azureでデータベース間通信するには
Azureサービスに対してアクセス全開放しないとできないと言われとても困ってる
Awsも同じなんだろうか
同じデータベースに違うソースのまぜるってやりたくないな

899 :NAME IS NULL:2021/09/07(火) 02:58:44.49 ID:???.net
PG-Stromって実際お幾ら万円なんですか?
何万円なのか、何十万円なのか、何百万円なのか、オーダーだけでも知りたい

900 :NAME IS NULL:2021/12/14(火) 11:07:20.30 ID:???.net
https://www.ipa.go.jp/security/ciadr/vul/alert20211213.html
pgadmin大丈夫なんかよーわからん。
教えてエラい人。

901 :NAME IS NULL:2021/12/14(火) 12:56:49.87 ID:???.net
pdadmin自体は関係ないけど
server modeで使っててweb serverでlog4j使ってるなら対策必要

902 :NAME IS NULL:2021/12/15(水) 13:08:50.65 ID:???.net
>>900
PostgreSQL無関係
基本的にJavaのセキュリティホール

903 :NAME IS NULL:2021/12/15(水) 15:49:14.12 ID:???.net
>>902
いや、Javaも関係ない。w

904 :NAME IS NULL:2021/12/19(日) 20:47:52.52 ID:???.net
ワイ、ブラウザ(chrome)使ってpgadminいじってるって事は、Apache使ってるんじゃ?とか思ったんだが、そーでもないのか。

905 :NAME IS NULL:2021/12/19(日) 20:54:33.27 ID:???.net
使ってる可能性はあるね

906 :NAME IS NULL:2021/12/20(月) 19:50:36.09 ID:uLvX1nGX.net
pgAdminそのものの内部はWebブラウザだけどな。

907 :NAME IS NULL:2021/12/25(土) 16:56:47.21 ID:???.net
札幌市の医療法人で麻薬取締法違反

https://youtube.com/playlist?list=PLEzfUgnS8ct4PJhGUM33Da-aWqnWAcpH_

908 :NAME IS NULL:2022/02/13(日) 20:18:49.90 ID:dbvh1W1h.net
初心者です。
hinemos の環境移行をしようと、DBのdump で過去Data移行できないか試しています。

DB のdump は下記コマンドで吸い出しました。
./pg_dump -h localhost -U hinemos -p 24001 > /tmp/hinemos.sql

リストアコマンドが判りません、そうすれば入りますか?
./psql -h localhost -p 24001 -U hinemos -f /tmp/hinemos.sql

これだと、「ERROR:」がいっぱい出ます。

909 :NAME IS NULL:2022/02/15(火) 23:32:04.39 ID:???.net
>これだと、「ERROR:」がいっぱい出ます。
多分既にテーブルがある状態でリストアしようとしてエラーがでていると予想
もしそうなら↓のどっちかで対応できると思う
・dbを空に(一度dropして再度作成)してリストアを実行
・ダンプ時に-cをつける(バージョンによっては--if-existsもつける)
pg_dump -h localhost -U hinemos -p 24001 --if-exists -c > /tmp/hinemos.sql

910 :NAME IS NULL:2022/03/16(水) 12:05:05.76 ID:???.net
function内からprocedure呼び出せる?

911 :NAME IS NULL:2022/03/16(水) 13:24:39.94 ID:???.net
>>910自己解決。呼び出せた

912 :NAME IS NULL:2022/03/16(水) 15:22:19.33 ID:???.net
質問なのですが
インデックスがある一時テーブルにselectかけるとき
ヒント区index scanを指定しても
いくらやっても適用されず
実行計画を見てもbitmap index scanになってしまいます。
どなたかこの問題に心当たりのある方いらっしゃいませんか?
posgre側がこっちの方が早いからと判断してやってるのかかと思ったのですが、bitmapの方が遅いんですよね…

913 :NAME IS NULL:2022/03/16(水) 17:00:32.15 ID:???.net
>>912
まずはEXPLAIN ANALYZE <query> でestimated rowsとactual rowsの差を確認
次にANALYZE <table>を実行してからEXPLAIN ANALYZEして差が出るかどうかを確認

914 :NAME IS NULL:2022/03/17(木) 19:17:55.47 ID:???.net
>>913
確認してからまた対応が違うってことかな?
もうちょい噛み砕いてけろぉ、おじさんsql詳しくナインだよ

915 :NAME IS NULL:2022/03/18(金) 22:39:42.10 ID:???.net
>>914
SQL関係ない。
実行計画を判断する元になる情報が実態とあってるかを確認しろって909は言ってる。
一時テーブルはautovacuum 対象外だからそのセッション内でanalyzeする必要あるはず。

916 :NAME IS NULL:2022/04/21(木) 11:19:04.35 ID:EBqMDuxt.net
ロールの権限について学習したいので教えてください
https://www.postgresql.jp/document/13/html/sql-grant.html
データベースオブジェクト間で包含関係にあるものの権限や、デフォルトの権限についてよくわかりません
あるロールにデータベースに権限を与えた場合、中のテーブル等にも権限を与えたことにはなるのですか?
逆に、テーブルのみに権限を与えた場合、データベースのアクセス権限は自動的に与えられるのですか?

917 :NAME IS NULL:2022/04/22(金) 01:22:01.50 ID:Ie5idS4k.net
>>916
データベース単位の権限なんてまず使わないと思うぞ。アクセスできるかできないかくらいの制御程度しかできない。

そんな粒度では意味がないし。

テーブル単位の権限付与が面倒だから、特定の権限をまとめたロールを作って、ロールで権限を付与する。

918 :sage:2022/05/16(月) 11:30:34 ID:oLXz7yW/.net
win10 pro postgresql11について質問させてください。

postgresqlのサービスを止めることなく、w10標準のバックアップツールで\dataをフォルダごとnasにバックアップして問題ないでしょうか?

919 :NAME IS NULL:2022/05/16(月) 23:58:56.09 ID:???.net
例えば↓みたいになったとしたら
 バックアップツールがファイルAをコピー
 バックアップツールがファイルBをコピー
 DBがファイルAとCにデータを書き込む
 バックアップツールがファイルCをコピー
コピー先のファイルAはDBがデータを書き込む前の内容で、ファイルCはDBがデータを書き込んだ後の内容になるので困ると思う

25.2. ファイルシステムレベルのバックアップ
https://www.postgresql.jp/document/11/html/backup-file.html

920 :NAME IS NULL:2022/05/17(火) 14:58:03 ID:gyj+zyNH.net
ありがとうございます。サービスを止めてからバックアップすることにします。

921 :NAME IS NULL:2022/05/22(日) 18:58:50.44 ID:???.net
dbdumpも同じ?

922 :NAME IS NULL:2022/05/22(日) 18:59:33.04 ID:???.net
pg_dump

923 :NAME IS NULL:2022/05/23(月) 16:08:07 ID:???.net
https://www.postgresql.jp/document/11/html/app-pgdump.html
> pg_dumpはPostgreSQLデータベースをバックアップするユーティリティです。 データベースを使用中であっても一貫性のあるバックアップを作成することができます。 pg_dumpは他のユーザによるデータベースへのアクセス(読み書き)をブロックしません。

924 :NAME IS NULL:2022/05/28(土) 17:48:41.65 ID:???.net
pg_basebackup使えば稼働中でもデータディレクトリまるごとバックアップできる。
ただし対象サーバーがレプリケーションのマスターとして動作できるように設定しておく必要あり。

925 :NAME IS NULL:2022/07/23(土) 09:36:40.59 ID:NLDFJYg2.net
15でpublicに書き込めなくうんたら

926 :NAME IS NULL:2022/08/08(月) 14:45:02.64 ID:???.net
教えてください。
ECPGからPostgresqlのストアドを呼び出し、結果をchar型の配列で受け取りたいのですがうまくいかなくて…
そもそも出来るのでしょうか?

927 :NAME IS NULL:2022/08/08(月) 14:51:50.63 ID:???.net
>>926
ECPGって何?

928 :NAME IS NULL:2022/08/08(月) 14:56:46.85 ID:???.net
https://www.postgresql.org/docs/current/app-ecpg.html

929 :NAME IS NULL:2022/08/08(月) 15:07:47.54 ID:???.net
>>927
PRO*CのPostgresql版みたいな奴です。

930 :NAME IS NULL:2022/08/08(月) 15:12:00.49 ID:???.net
そもそもストアドで配列で値返せるのか?
ファンクションになるんじゃ無いの?

931 :NAME IS NULL:2022/08/08(月) 15:37:55.96 ID:???.net
>>929
https://itsakura.com/postgresql-func
ファンクションで値返すしか無いんじゃ無いの?

932 :NAME IS NULL:2022/08/08(月) 16:12:13.46 ID:???.net
intの配列だとうまくいくんですよね…

933 :NAME IS NULL:2022/08/08(月) 16:46:57.70 ID:???.net
>>932
textにすれば?

934 :NAME IS NULL:2022/08/08(月) 18:37:02.51 ID:???.net
>>932
https://www.ne.jp/asahi/hishidama/home/tech/postgres/plpgsql/array.html

935 :NAME IS NULL:2022/08/08(月) 18:46:18.87 ID:???.net
text[]有るやろ?
何でcharなん?

936 :NAME IS NULL:2022/08/08(月) 19:00:51.58 ID:???.net
Cとの型変換が必要かどうかで違いがあるんじゃないの?
charじゃなく”char”ならOKとか

937 :NAME IS NULL:2022/08/08(月) 19:11:53.86 ID:???.net
質問者来なくなったな
textで答え出たからな

938 :NAME IS NULL:2022/08/08(月) 21:47:30.56 ID:Qb/hdlom.net
Postgresの文字列型はtext型とみなす仕様が根底にある。

同じ文字データ型でもキャストがうまくいかないのがはまるところ。

939 :NAME IS NULL:2022/08/08(月) 23:28:34.06 ID:???.net
>>934
ありがとうございます!
今まで色々やってみてまだ出来ていないです…
明日やってみます!

940 :NAME IS NULL:2022/08/08(月) 23:31:07.14 ID:???.net
>>935、933、934、935
ありがとうございます!
明日も色々やってみます。

941 :NAME IS NULL:2022/08/09(火) 09:59:56.87 ID:???.net
やっぱりECPGの実行体起動すると以下で落ちちゃいますね…
[malformed array literal: "" on line 53][-400]

942 :NAME IS NULL:2022/08/27(土) 16:29:40.65 ID:HfI6r5QTn
女性の権利た゛のLGΒТだの騒か゛しいが、都心まで数珠つなぎて゛クソ航空機飛は゛して私権侵害して威力業務妨害して
騷音に温室効果カ゛スにコロナにとまき散らして気侯変動させて海水温上昇させてかつてない量の水蒸気を日本列島に
供給させて曰本中て゛土砂崩れに洪水,暴風、猛暑,大雪にと災害連發させて住民の人生を破壞どころか殺しまくって
静音が生命線の知的産業を根絶やしにして經済もクソもないテ゛シ゛タ儿後進國のポンコツ國家に陥れてる
JАLだのANÅだのJTBだのテ□リス ├と天下り賄賂癒着してる世界最悪の殺人組織公明党国土破壊省による
史上最惡の私権侵害をス儿‐しなか゛らその正義もクソもない自己中心的なダフ゛スタっぷりに寝言は寝て言えって感し゛だわな
しかも深夜早朝だろうと富士山やスカイツリ−を眺めるためにわさ゛わざ陸域飛行させてやか゛るし
深夜早朝だろうと富士山やらを眺めるために陸域飛行させたり、ポリ公なんて朝5時にクソヘリ飛ばして住民の安眠を妨害したり、
地球破壞して住民の権利を強奪して私腹を肥やす世界最惡のテロ組織自民公明を壞滅させてから贅沢な主張をほざきやがれ
https://i.imgur.com/gdh8KeD.jpeg

創価学會員は,何百万人も殺傷して損害を与えて私腹を肥やし続けて逮捕者まて゛出てる世界最惡の殺人腐敗組織公明党を
池田センセ−が口をきけて容認するとか本気て゛思ってるとしたら侮辱にもほどがあるそ゛!
hΤТρs://i,imgur、com/hnli1ga.jpeg

943 :NAME IS NULL:2022/08/27(土) 18:04:49.07 ID:p6dR8Je4.net
zip版ダウンロードしたら、pgAdmin4のフォルダ名が長すぎて解凍失敗するわ。
こないだまで解凍出来たのに。

インストーラー使ってインストールしたらアンインストール中にエラーになるわ。

255文字制限解除しないと使えないのが普通だっけ?

944 :NAME IS NULL:2022/08/27(土) 18:16:43.57 ID:???.net
>>943
プラットフォーム名が書かれていないし、「255文字制限解除」が何か分からないので外すかもしれんが、
インストール先のファイルシステムはサポートされているもの?
仮にWindowsとした場合、FATやFAT32はサポートされていない。

それから、これは未確認だけど、もし新しいZIP64フォーマットが採用されてるなら、対応するアーカイバを使うとか。
パーミッション、あるいは空き容量が不足していて伸長が正しくできない可能性は?

945 :NAME IS NULL:2022/09/19(月) 22:35:54.64 ID:???.net
zip解凍できないのはpostgre以前にOSの問題だね。

946 :NAME IS NULL:2022/09/19(月) 22:41:45.27 ID:???.net
問題ではなく、仕様やろ。
C:¥ルートにでも展開すりゃええんちゃうの?

947 :NAME IS NULL:2022/09/28(水) 23:41:12.68 ID:???.net
少しお聞きしたいのですが
現在社内にある旧商品管理鯖(引退済み)のマシンを引っ張り出してきたのですが
PostgreSQLのVerが7.3.10でした。
この状態からpg_dumpallでデータを取り出すことは出来たのですが、
別のサーバにPostgreSQLのVer12をインストールして、
イカのコマンドを打ったところ、
psql -U postgres -f /backup.db > update.log
画像の様な状態になってどうしたものかと考えております。
エラーでキーが重複してることや、
multiple primary keys for table are not allowedのように
複数の主キーは許可されていませんと出てきているのですが、
これは、SQLのバージョンを一気に上げすぎているからなのでしょうか?
それとも、データベース自体が壊れている可能性があるのでしょうか?
(過去に鯖の半クラッシュが何度かあった模様)
よろしくお願いします。
https://i.imgur.com/daRuFqr.jpg
https://i.imgur.com/pCXROZr.jpg

948 :NAME IS NULL:2022/09/29(木) 05:03:21.04 ID:???.net
自分なら、その方法がサポートされているか(バージョン間、手順)を調べて、
サポートされているようならログを見て起こっている問題・原因を把握したうえで対策を考える。

949 :NAME IS NULL:2022/09/30(金) 22:50:06.19 ID:???.net
duplicate key value violates unique constraintとかあるようだけど、DBに既にテーブルがあったりしない?

950 :NAME IS NULL:2022/12/08(木) 00:04:47.29 ID:pHlq3Sz7.net
初心者ですみません。既存TBLにカラム追加してレングス変わると影響大きいですか?当初TBL設計時にFILLER積んだほうが良いのでしょうか?

951 :NAME IS NULL:2022/12/08(木) 02:20:31.77 ID:???.net
仕事で使ってるけど必要になったらカラムどんどん追加してるよ

952 :NAME IS NULL:2022/12/09(金) 12:22:34.66 ID:???.net
そんなのプログラムの作りによるんじゃないの
DBに依存しまくってると苦労する

953 :NAME IS NULL:2023/01/15(日) 23:52:41.89 ID:SdlFKp5i.net
ブチクシは悩み続けて3年

954 :NAME IS NULL:2023/01/19(木) 07:06:46.65 ID:???.net
ちんちん!シュッ!シュッ!シュッ!

955 :NAME IS NULL:2023/01/19(木) 22:38:06.23 ID:jlE8WkqW.net
>>950
メインフレームのファイルのようなものじゃなくて、データファイルの内部は頻繁にデータの位置を変えている。

そんな古風な仕組みではない。

956 :NAME IS NULL:2023/01/20(金) 13:33:44.34 ID:???.net
カラム情報としてポインタになってるだけだね。適当

957 :NAME IS NULL:2023/03/11(土) 05:08:19.44 ID:aB1pzwA3.net
外部キー制約を一時的に変更するにはどうすればいいでしょうか?
通常は、ON UPDATE RESTRICT で、一時的に ON UPDATE CASCADE にしてクエリ実行後に RESTRICT に戻すにはどうすればいいのでしょうか?
ADD CONSTRAINT と DROP CONSTRAINT の方法は分かるのですが・・・

958 :NAME IS NULL:2023/03/11(土) 16:56:32.01 ID:???.net
ALTER TABLEのALTER CONSTRAINTではできないのでDROP/ADDする

ALTER TABLE <table_name>
DROP CONSTRAINT <fk_name>,
ADD CONSTRAINT <fk_name> FOREGIN KEY … ON UPDATE CASCADE;

959 :NAME IS NULL:2023/04/22(土) 19:34:36.35 ID:g9MOSe1r.net
物理外部キーを作るくらいなら、論理外部キーとしておいた方が楽。

ガチガチにしておいても、エラーハンドリングの実装がなければ意味がない。

960 :NAME IS NULL:2023/06/25(日) 23:14:20.40 ID:???.net
update on conflictを使いまくってるとシーケンス値が上がりまくって、primary keyのidの値が飛びまくるんだけど
気にしたら負けかな。
もちろん綺麗に1 2 3とならない事は認識してるけど、1 1235 5493 29849 みたいに膨大な数飛びまくると…。

99%がupdateの場合なんだけど、update returningして件だったらinsertにした方がいいのかな
その場合ロックとか考えなきゃいけないのが大変なんだけど、もう避けられないのかな

961 :NAME IS NULL:2023/06/26(月) 18:19:47.60 ID:???.net
insert on conflict do update(いわゆるupsert)のことだよね?
conflictの条件をprimary keyにできないならPKのシーケンスが飛びまくるのはしょうがないと思う
ただ99%がupdateならupdateしてからinsertのほうが性能は良くなるような気がする

ロックを考えなきゃいけないというのはよくわからない
今も同じじゃない?

962 :NAME IS NULL:2023/06/26(月) 20:59:21.79 ID:???.net
言いたいのはロックじゃなくてトランザクションじゃないかな

963 :NAME IS NULL:2023/06/26(月) 22:46:26.10 ID:???.net
>>961-962
ありがとうございます。
on conflict do updateであれば、トランザクション貼らずともコマンドを実行するだけで確実にinsertかupdateが確定で成功するけど
update → insertだと両方updateが0件になって両方insertしようとして片方がエラー という事が起きるかなと認識していました

964 :NAME IS NULL:2023/06/27(火) 01:12:04.51 ID:???.net
update → insert on conflict do updateをトランザクションでくくれば今と同じなんじゃないかな

ただREAD COMMITEDならlost updateが発生してるだろうから
本当にそれが望ましいのかよく考えたほうがいいと思う

965 :NAME IS NULL:2023/07/02(日) 05:52:54.79 ID:???.net
insert into 〜 on conflict do updateでシーケンス値が増えるのが我慢できなくて
insert into 〜 on conflict do update相当の処理をトランザクションで書いているのですが
これって最終的にテーブルに対してACCESS exclusiveロック(selectすら妨害する最強ロック)をかける事が必須だったりしますか?

上記のクエリと同じ処理を行いたい場合、以下の処理を行う必要があると思います
・select文で該当の行が既にあるかをチェック
・select文の結果を見て、該当の行があればupdate
・select文の結果を見て、該当の行が無ければinsert

トランザクション1と2が両方同じタイミングでselect文を発行して、どっちもresultが0だった場合、どっちもinsertをしようとしてしまう。
だからどちらか片方のselect文は、他のinsertが終わるまで待ってから行って、result 1を取得する必要がある。

最初は行ロックでいいかな?と思ったのですが、最初にselectをした段階で対象の行は「存在しない」ので行ロックがかけれません。
となると、対象のテーブルに一番強い権限のACCESS exclusiveロックをかける必要がある?と思います。

ですが、それだとdo updateとは無関係のただのselect文に対してもロックがかかってしまいます。
この一連のdo update〜の処理でだけ排他ロックをかけたいのですが、そんな事出来るのでしょうか?

966 :NAME IS NULL:2023/07/02(日) 06:05:07.53 ID:???.net
違った。
SHARE UPDATE exclusiveモードを使えばよかったのか
失礼しました

967 :NAME IS NULL:2023/07/02(日) 06:12:43.91 ID:???.net


968 :962:2023/07/02(日) 22:36:06.35 ID:???.net
同じ話題を引っ張り続けて申し訳ないけど、自分でinsert〜on conflict do update(upsert)相当の事をするのが面倒すぎて、趣味ですら面倒で手が止まる。
仕事じゃ絶対提案出来ないな(ダルすぎて)
自分の場合は実際には1000件単位のデータをupsertしてるんだけど、この数だと1件づつselect→(update or insert)は遅すぎる。
select文で1000件のデータのユニークキーに対して長いwhere 文を作る。
( SELECT id,key FROM tbl WHERE key in ( $1 , $2 , $3 .... , $1000) )

select文の結果を入れたい1000件単位のデータと比較して、1件づつinsertするかupdateするかを判定する
insert、updateも1件づつやるとトランザクションしても遅いから1リクエストで済むように動的にクエリ文を作る。
( INSERT INTO tbl (key) VALUES ($1),($2)... )
( UPDATE tbl SET key=c.key FROM( VALUES ( ($1,$2),($3,$4),...) AS c(id,key) WHERE tbl.id=c.id )

そしてupsertから加えた機能で、含まれてないデータをDELETEもするようにしてるからさらにクエリ文が増える。

SQL文の文字列をプログラムから動的に作るんじゃなくて、
O/Rマッパーというのを使ってもっと構造的に出来るようにするべきなんだろうか…。
ちなみにnode.jsです。

969 :NAME IS NULL:2023/07/03(月) 00:19:11.21 ID:???.net
その1000件とかの入力データに同じユニークキーを対象としたデータがあった場合にどうしたいの?
何か累積値や合計値を計算してて必ずカウントアップしていかないといけないとか
入力データ内の順序で後のデータを正として先のデータは捨てられてもいいとか

>>966
>SHARE UPDATE exclusiveモードを使えばよかったのか
これだとテーブルロックになるので1つのトランザクションが終了するまで次のトランザクションは待つことになる
これで十分なユースケースならそもそも同じキーに対して同時にinsertが実行される心配しなくてもいいよね?分離レベルをSerializableにすれば該当キーがロックされるだけで済むはず

970 :NAME IS NULL:2023/07/03(月) 03:52:15.72 ID:???.net
ごめんなさい、SQLクエリについてはSHARE UPDATE exclusiveのロックを取得する。で何の問題もありません。

自分が今悩んでいるのは、SQL文が動的になって書くのが大変という事です。
1000件あるデータ以下のような1回のinsert文で全ての値を登録するなどの事をしています。
insert into tbl (key1,key2,key3) values(1,2,3),(4,5,6),(7,8,9);

nodejsの場合、プログラムの中からSQLを実行する時は以下のような書き方をするのですが
query(`insert into tbl(key)values($1)`,[1]);

これが可変になると、以下のような書き方になってものすごく読みにくく感じます。実際はパラメーター複数あってさらに複雑ですし。
query(`insert into tbl(key)values ${insertDatas.map((v,i)=>`($${i+1})`).join(",")}`,insertDatas);
もちろんプログラムとしては全く難しくないのですが、素直に言ってダルい。$が連続しているのも読みにくさが増す理由になってる。

なので、こういう場合はO/Rマッパーというものを使えば
文字列操作ではなく見やすい書き方になったり
1回頑張って作れば他のテーブルに横展開出来るから楽なのかな?という趣旨でした。


言語化するとposgresqlのスレで言う事じゃない気もして、申し訳ない。

971 :NAME IS NULL:2023/07/03(月) 18:43:11.96 ID:???.net
ORMじゃなくてもbulk insert用のSQLを生成/フォーマットする機能のあるライブラリを選べばいいよ

>query(`insert into tbl(key)values ${insertDatas.map((v,i)=>`($${i+1})`).join(",")}`,insertDatas);
string interpolationに入れた場合に適切にエスケープしてくれるのかどうかちょっと怪しくない?

972 :NAME IS NULL:2023/07/15(土) 18:40:40.77 ID:nkjGsW1C.net
ストアドファンクションでINSERTしたレコードを取得するにはどうすればいいでしょうか?
INSERTは下記のクエリで行っています。
RETURNS VOID になっている所を、RETURNS TABLEにしてレコードを取得したいのですが、具体的なソースコードが思いつきません。
https://ideone.com/5JPpQ4

973 :968:2023/07/15(土) 18:49:29.02 ID:???.net
すみません。自己解決しました。

974 :NAME IS NULL:2023/07/15(土) 19:15:02.96 ID:???.net
>>972
解決した方法も書いておけよ。そうすることでQ&Aが成り立つし、次に困ったときに返信があることが期待できるようになるんだぞ。

975 :NAME IS NULL:2023/07/15(土) 19:58:47.70 ID:???.net
それが人にものを頼む態度か

976 :NAME IS NULL:2023/07/15(土) 21:53:57.61 ID:???.net
RETURNINGやろ
それ以外で自決してたら知らん

977 :968:2023/07/16(日) 01:02:59.77 ID:???.net
解決した方法は下記です。
RETURNS TABLE - RETURN QUERY です。
https://ideone.com/kgQo96

もっといい方法もあると思いますが、自分では思い付きませんでした。

978 :NAME IS NULL:2023/07/16(日) 01:27:08.90 ID:n5R9lLii.net
>>977
変数というものがわからないのか?

979 :NAME IS NULL:2023/07/16(日) 01:30:14.06 ID:n5R9lLii.net
初心者はわかっている値を再度、SELECTしたりするよな。

980 :NAME IS NULL:2023/07/16(日) 01:31:54.97 ID:n5R9lLii.net
見れば見るほど何がやりたいのかわからない

981 :968:2023/07/16(日) 02:03:17.84 ID:???.net
すみません。
どこが悪いのでしょうか。

RETURN QUERY SELECT については、
使用時はプログラムで INSERTINCIDENT() に引数(incident_name, full_text, registered_by) を与えて呼び出し、
プログラムで与えた引数の値と、INSERT された値が一致するかどうかを比較する必要があるので、意図して SELECT しています。

982 :NAME IS NULL:2023/07/16(日) 02:13:14.95 ID:n5R9lLii.net
ネタじゃなければ、確認することをくっつけて実行するのは素人だと思ってください。

そもそもincident_nameとfull_textが引数になってないでしょうに。

983 :NAME IS NULL:2023/07/16(日) 02:15:13.71 ID:n5R9lLii.net
'件名',
'本文本文本文',

公表しているコードだとリテラル値を使っているだけなので、いきなり脳内情報を書き込まれてもわかりません。

984 :968:2023/07/16(日) 02:36:08.88 ID:6TXuZh7c.net
>公表しているコードだとリテラル値を使っているだけなので、いきなり脳内情報を書き込まれてもわかりません。
すみません。引数をつけて書き直しました。
https://ideone.com/6Ufeev

>ネタじゃなければ、確認することをくっつけて実行するのは素人だと思ってください。
この件が、ソースコードのどの部分にあたるのか理解出来ていません。
おかしな理解のまま進みたくないので、教えて頂けないでしょうか。

985 :NAME IS NULL:2023/07/18(火) 11:43:11.80 ID:nPycmVG4.net
そのファンクションが必要な理由がわからない

986 :NAME IS NULL:2023/07/18(火) 16:17:09.32 ID:nPycmVG4.net
グルグル回ってるな。
INSERTしたレコードの列値がすべてわかっているのに、そのレコードをSELECTするのはPostgreSQLを信用していないということなのか?

987 :NAME IS NULL:2023/07/18(火) 21:22:24.46 ID:???.net
idがストアドの中で採番されるからそれを取りたいんだろ。タイムスタンプなんかも。

988 :NAME IS NULL:2023/07/18(火) 22:28:47.10 ID:DR+/wZzQ.net
SELECT文のFROM句にINSERTしてSELECTするファンクションを置きたい理由がわからない。

手続きをファンクションとして隠蔽したいんだろう。

idの最大値の求め方も同時実行の考慮なしだし、INSERTが想定通りだったか、自分で確認するらしいし、もはや目的がわからない。

989 :NAME IS NULL:2023/07/19(水) 00:12:11.06 ID:???.net
>>988
>idの最大値の求め方も同時実行の考慮なしだし
SERIALIZABLEかもしれないよ

990 :NAME IS NULL:2023/07/19(水) 00:17:38.56 ID:???.net
INSERTが想定通りだったかSELECTで確認する
さらにそのSELECTが想定通りだったか・・・・詰み

991 :968:2023/07/22(土) 22:26:35.01 ID:???.net
INSERT 時に採番される ID とタイムスタンプを取得したいので、ストアドプロシージャではなくストアドファンクションにしました。
ファンクションではトランザクションが使えないので、 serializable にする事で妥協しました。

全てのクエリが、ファンクションを呼び出すプログラム側 ( Npgsql ) の NpgsqlTransaction を使用するので、
プログラム側で IsolationLevel に Serializable を設定しています。

・ファンクションでトランザクションを使う方法
・ストアドプロシージャで戻り値を戻す方法
のいずれかが分かれば serializable 以外に出来るのですが、どうするべきなのかがよく分かりませんでした。

992 :NAME IS NULL:2023/07/22(土) 22:45:38.83 ID:rGyCVXUK.net
ネタ確定だな

993 :968:2023/07/23(日) 01:24:32.26 ID:???.net
>>992
ネタじゃなく、知識がない状態で突貫でやらざるを得ない状態になっているのです・・・。

994 :NAME IS NULL:2023/07/23(日) 03:11:39.33 ID:lgEmBl7h.net
ストアドプロシージャにはOUTパラメータというものがあるんだよ

995 :NAME IS NULL:2023/07/23(日) 17:56:41.43 ID:???.net
Windowsの15.3をインストールしたけどpgadminが動かないね
海外の掲示板では15.2に戻せって言ってるっぽい
原因がPython側にあって修正する時間がないって回答きてるっぽいからしばらくバージョンアップ無理かな

やっぱネイティブじゃないとこんな事になっちゃうね

996 :NAME IS NULL:2023/07/23(日) 20:22:58.37 ID:lgEmBl7h.net
どんな製品でも最新バージョンは様子見しておくもんなんだよ

997 :NAME IS NULL:2023/07/24(月) 08:55:43.11 ID:???.net
PostgreSQLは最新の15.3をインストール
添付のpgAdmin7.4はインストールしない

別途古いpgAdmin7.3をインストール

これでいけた

998 :NAME IS NULL:2023/08/13(日) 03:59:11.08 ID:???.net
Pgadmin4自体のデバッグログを出すにはどうしたら良いのでしょうか?
ググると「DBにxxの拡張を入れて〜」とかあるけど、そうじゃなくてpgadmin4のプログラム自体のログが見たいです。

AWSのrdsにssm経由で繋ごうとして、
psqlコマンドではpgpass.conf ファイルに設定したパスワードも読み込んで何も問題なく接続出来るんだけど、
psql -h localhost -p 57851 -U postgres -d postgres

pgadmin4ではconnection timeout expiredしか表示されなくて何も手がかりがなくて困ってます。

素のpsqlで繋がらないなら、DB側の設定やAWSのセキュリティグループを見るとかやりようはあるのでしょうが、pgadminだけで繋がらない状態です

999 :NAME IS NULL:2023/08/13(日) 05:20:47.90 ID:???.net
>>998
これは?
https://www.pgadmin.org/faq/#8

1000 :NAME IS NULL:2023/08/13(日) 20:38:16.82 ID:???.net
>>999
ありがとうございます。まさにここでした。

そしてログレベルを上げても接続エラーの詳細なログは出なくて
結局バックエンドのpythonにログを追加してデバッグして
最終的に接続できない理由はlocalhostと書いてあるからで127.0.0.1と書いたら繋がりました。

237 KB
新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
名前: E-mail (省略可) :

read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★