2008年11月13日木曜日

\302\240問題

\302\240問題、別名c2a0問題。

utf-8は半角空白を二つもっているため、注意が必要。
かなりはまった。

2008年6月6日金曜日

EXPLAIN分のcostの内容

EXPLAIN分のcostの中身を調査

cost=初期処理コスト..全処理コスト
初期処理コスト=マージソート結合やハッシュ結合を利用する際にかかる処理

らしい

2008年2月28日木曜日

PostgreSQLのシーケンス値を元に戻す

通常シーケンスの値を変更する場合はこんな感じ。
select setval([シーケンス名], [シーケンス値])
僕がよく使用したのはcopy文でデータをインポートし、それに合わせて シーケンスを進めたいってばあい。以下の様にして実行。
select setval([シーケンス名], select max(id) from [テーブル名])
ただシーケンスを初期状態にしたい場合はどうするのかな。
setvalのシーケンス値に0は入れれないし、1を入れても2からスタートしてしまう。
調べてみるとsetvalの第3引数にbooleanを指定してできるみたい。第3引数にfalseを指定するとnextvalが指定した値を返したくれるみたい。よって以下のようにします。

select setval('products_id_seq', 1, false)


まぁ使うときないけど