Server知っている人は知っている、というお話(だと思う)。ServerでTIMESTAMP型の列にsetTimestampできないというのをどこかで読んでからずっと引っかかっていたこと。正道編)の際に、(書いていないことも含めると)次のような現象を確認していた。含めることができます。使って、今日すごく勉強になったこと。たなかれいなとあややとおっぱい。ServerにおけるTIMESTAMP型というのは、SQL標準規格で定められているTIMESTAMP型とは別物ではないだろうかということが見えてくる。ServerではDATETIME型が対応する。そこで、次のようなクエリを各DBMSに対して実行してみた。;結果は次のような感じ。2005/2008MySQLでは、TIMESTAMP型はデフォルト値がNULLでないあたりからしてSQL標準規格やほかのDBMSとは違う。2000以降ではROWVERSIONシノニムを使用することが推奨されている)。Serverは前回記事に書いてあるのでいいとして)MySQLではDATETIME型を使えばすべて解決かというと、そう簡単な話ではない。CURRENT_TIMESTAMP)MySQLでこれを実行すると、「ts1の初期値が不正です」みたいなエラーが発生する。CURRENT_TIMESTAMPをDATETIME型の列のデフォルト値にできないということ。CURRENT_TIMESTAMP」するのではなく、insert時にCURRENT_TIMESTAMPを明示してやる必要がある。id);pstmt.executeUpdate();これを知らずにMySQLでTIMESTAMP型を使用しているケースはありそうだな。TIMESTAMP」とか書いてて、登録日時が毎回変わってしまう、みたいな(怖)。AUTOCOMMIT=0後の動作を誤解していたらしいの巻PHP+MySQL環境でmysql_pconnect関数を使っていて、謎な挙動に悩...2011-02-14CURRENT_TIMESTAMPをTIMESTAMP型の列のデフォルト値に指定してみる一見するとなんてことはない。以下のような表を作成する。月別アーカイブ広告はてなブログをはじめよう!hhelibexさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。