投稿

ラベル(PostgreSQL)が付いた投稿を表示しています

[PostgreSQL] serial型のidで採番された値を取得する

やりたいこと Node.js (express) REST API PostgreSQL pg-promise 上記の環境で、PostgreSQLにINSERTした際にidで採番された値を取得し、REST APIのレスポンスに含めたい。 実装 PostgreSQLでは RETURNING を使うとINSERT, UPDATE, DELETE で SELECT文のようにデータを返す事ができる。 めっちゃ便利。 // POST: /api/user router.post( "/user" , (req, res, next) => { // パラメータの組み立て & パスワードのハッシュ化 const params = Object .assign({}, req.body); // ~~ 省略 ~~ // idはserial (自動採番)、insert後に採番したidを返す const query = `insert into users ( name, mail, password ) values ( \${name}, \${mail}, \${password} ) returning id`; db.one(query, params) .then((data) => { console.log(data); // idをセット const id = data.id; res.status( 201 ).json({ status: "created" , message: `http: //localhost:${port}/api/user/${id}` }); }) .catch((err) => { return next(err); }); }); id以外の列も当然返せる。 更新日時なんかも返せるので、セッションテーブルのUPDATEと日時の取得をひとつのクエリで実施できる。 参考 知って得するPostgreSQLのRE...

2017-08-30 日報

実装が一段落したので、PowerPointで説明資料を作成中。 なにかの資料で「日本語フォントはメイリオ、欧文フォントはSegoe UIがよい」とあったので試してみようと思ったんだけど、 Segoe UI は Windowsにしか入ってないのね。 メイリオ はMacでもOfficeインストール時に一緒に入ってたから Segoe UI もインストールしてくれてると思ってた。 そもそもMac版PowerPointだとフォントを自由に設定できなくて辛い。 おそらくWindows版との互換性のためだと思うけど、もう少しなんとかならんものか。 今日調べたこと [PostgreSQL] setvalしたときにトランザクションはどうなるの? 9.16. シーケンス操作関数 シーケンスはトランザクションとは異なる扱いを受けるため、setvalによる変更は、そのトランザクションがロールバックされたとしても元に戻りません。 なるほど。 [PostgreSQL] truncateしたときにsequenceも一緒にリセットする TRUNCATE RESTART IDENTITY を付ければよい。 デフォルトは CONTINUE IDENTITY (シーケンスの値を変更しない) [PowerPoint] PowerPoint 2016 for Mac でテーマのフォントを変更する MacのPowerPointからは予め用意された「フォントパターン」からしか選択できない。 Theme Fonts フォルダに自作のXMLを配置すると「フォントパターン」の選択肢に追加表示されるので、XMLを書くしかなさげ。 手順は以下を参照 Mac版PowerPointで、テーマの「フォントパターン」をカスタマイズする | It’s Real Intelligence! 7 PowerPoint for Mac 2016でユーザ定義の「テーマのフォント」を作る - Qiita フォントについては以下が参考になった。 パワーポイント関係なく、普通に使えそうな情報。 互換性を考慮した、パワーポイントにおすすめのフォント一覧 [CSS] font-smoothプロパティについて font-sm...