PostgreSQL
はじめに メリークリスマス!この記事は Qiita AWS ADVENT Calendar 2の25日目の記事です。 qiita.com 最近、Postgres 9.6を 13.3 にアップグレードしました。マネジメントコンソールからポチポチするだけで簡単に上がるだろうと思っていましたが、思ってい…
はじめに Postgresであれこれ作業をしていて、ゼロベースでSchemaを作成する必要があり、不要なテーブル等関連するリソースをまとめて削除したかったのでメモ。 実行方法 DROP SCHEMA hogehoge CASCADE 公式情報 www.postgresql.jp
はじめに Railsのend_of_dayと同じことをpostgresで実現する必要があったのでメモ。 やりたいこと WHERE句にて、created_atを比較したい 前日の23:59:59までのデータをSELECTしたい 前日の23:59:59を取得するSQL SELECT DATE_TRUNC('day',NOW()) + '-1 secon…
やりたいこと URLにidを使っていると、値を変更して他のユーザの情報が見れたり、データ数の推測ができてしまう。これを避けたい。 https:example.com/user/1/hoge ではなく、 https:example.com/user/76a049b8-d280-49e8-917f-d7b28107c660/hoge というよう…
実行環境 AWS PostgreSQL10.3 やりたいこと 1つのカラムにカンマ区切りでidなどが入っている このカラムを分割してキーにしたい こういうデータを、 列名 値 hoge_id 1,2,3,11 こうしたい。 列名 値 hoge_id 1 hoge_id 2 hoge_id 3 hoge_id 11 実現方法 rege…
やりたいこと PythonからPostgreSQLのストアドプロシージャを実行したい。 具体的にはAWS Lambdaからストアドを実行したい。 実行環境 AWS Lambda Python3.6 psycopg2 PostgreSQL9.6.6 実現方法 psycopg2のcallprocメソッドを使う。 実装例 import sys impor…
やりたいこと BETWEEN検索で、今月初日 00:00:00~末日 23:59:59の検索がしたい BETWEEN検索で、先月初日 00:00:00~先月末日 23:59:59の検索がしたい 取得したい値 実行日は、2018/11/13。 今月初日(時間なし) -- 2018/11/01 SELECT DATE_TRUNC('month',now…
はじめに PostgreSQLに限らず、AWS RDSのタイムゾーン設定は、defaultではUTCになっています。変更手順をまとめます。 環境 AWS RDS postgreSQL10 注意事項 defaultのパラメータグループは編集できないので注意! パラメータグループの作成手順 パラメータグ…
はじめに Psycopg2のmogrifyにint型の要素を1つ渡して、エスケープしたSQLを取得しようとしたらエラーになったのでメモ。 環境 AWS Lambda Python3.6 PostgreSQL9.6 発生したエラー "errorMessage": "'int' object does not support indexing", "errorType":…
実行環境 AWS Lambda Python3.6 PostgreSQL9.6.6 psycopg2 やりたいこと existsでデータの有無を確認 結果をBooleanで返却したい 解決方法 fetchone()を使う。公式ドキュメントは以下。 The cursor class — Psycopg 2.7.5 documentation 実装例 def is_exist…
やりたいこと Python3で、PostgreSQLのsequenceを使った処理を書きたい 実行環境 PostgreSQL9.6.6 Python3.6 psycopg2.7.4 検証用シーケンス CREATE SEQUENCE "schema"."table_name_id_seq" INCREMENT 1 START 1 NO MAXVALUE NO MINVALUE NO CYCLE CACHE 1 O…