uchiumiです。
今日のPHPは、シーケンスについてや、トランザクションについてなどを学びました。
シーケンスについて
シーケンスを使うとデータ追加時にIDをつける際、順番に番号を振ってくれて楽とのことでした。
create sequence キー名 start 初期値;
これで作成し、insert文のIDの値を入れるところに、
nextval(’test_0724_id_seq’)
と記述します。
以前、ファイルを使っていたときは、このIDをつけるという作業に少し悩んでいたので、とても便利だと思いました。
トランザクションの処理をする
トランザクションの処理をするには以下のものを使います。
pg_query(”BEGIN”);
pg_query(”ROLLBACK”);
pg_query(”COMMIT”);
もしもCOMMITするまでに一連するデータの追加や削除や更新を行い、複数行ったうちの1つが失敗してしまった場合、他の成功した処理を反映させない為にROLLBACKをすることによって変更された内容をBEGINを宣言した時のものに復元できるとのことでした。
もし問題がない場合は、COMMITをすることにより、変更処理を反映させるとこができます。
また、BEGINを宣言すると、同時に同じデータの変更処理がされるのを防げるとのことでした。
他にもこれを使う目的として、アプリケーションでエラーが出てしまった時の為、対話型のインターフェースでSQL文を打つ場合に安全の為に、というものがあるとのことでした。
私たちはまだこれを使わなければならないような複雑なデータベースの処理をしていませんが、用途をしっかり理解して、有効に使っていきたいと思います。
また今日はデータベースからtimestamp型のデータをとってくる際に、
strtotime()という関数を使うとデータをフォーマットし直せるということを教えてもらいました。
一度フォーマットされたものをもう一度フォーマットし直せる関数があることに驚きました。
いろいろな関数を使いこなせるようになりたいと思います。
(2008/07/25 17:18 uchiumi追記)
動画アップしました!

コメントをどうぞ