読者です 読者をやめる 読者になる 読者になる

MySQLでもStrictモード

PHPにはstrictモードってのがあって(Perlにもあるね)怪しいことしてたら何らかの警告を出してくれるんだけど、同じような概念がMySQLにもあるとは知らなかった。ローカルでいくら動かしてもエラーにならないのに、別の人が動かすとSQLの実行時に失敗してしまうという不思議な現象に遭遇して、DBに詳しい上司に聞いてみたら答えがわかってすっきり。
MySQL :: MySQL 5.1 リファレンスマニュアル :: 4.2.6 SQL モード
my.cnfに下のように書いておくと幸せになれる。

sql-mode="STRICT_ALL_TABLES"

ググってもなかなか答えにたどり着け無さそうだなと思ったら詳しそうな人に尋ねよう。というか、多くの人はググる前に頭の中に浮かんだキーワードで答えが見つかるかどうかってのは大体分かるんじゃないかな。僕は上のような状況に遭遇してPHPのstrictモードのことは連想できず、抽象的なキーワードしか思い浮かばなかったので即座に諦めて上司に聞いた。まぁ、「この人なら知ってるだろう」というツテが近くに無ければ、2chとかで聞くなりどうにか頑張ってググるなりしないといけないわけだけど、ツテがあるのなら積極的に活用しよう。
仕事ですから!