perl+DBI プログラムの鉄則 のつづき。鉄則その4. my $sql = "SELECT ". " hoge, ". " fuga ". " FROM table1 ". " WHERE foo = ?"; SQL 文の可読性を高めるため、必ずインデントを付けること。SQL はプログラムとデータベースの界面である。プログラム...
flag について悩む の コメントより名前というより、データ型をBOOLEAN NOT NULLにしたら、2値ということでいいんでないでしょうか。そうでなければ、2値以外もありえる、たとえそのときは選択肢が2つしかなくとも、設計者は増える可能性を考えていた(仕様変更含め)、という認識で、データ型重視で。もちろん、『is_admin』なんて項目に、「管理者/保守ユーザ/一般ユーザ」なんて値が設定可能だったら、「なんでそんな名前やね...
2ch プログラマ板の DB 関連のスレッドで (どのスレかは忘れた)、 「hoge_flag という項目名をつけるのであれば、とりうる値は 2種類で あるべき。flag は旗なんだから、上げるか下げるかのどちらかだ」という趣旨の書き込みを見たことがある。そのときは何となく納得して、2値の場合は hoge_flag、3値以上の場合はhoge_code や hoge_type などと命名するようにしたが、本当に旗は上げるか下げるかのどちらかなのだろうか。た...
http://www.itmedia.co.jp/news/articles/0510/08/news012.html より。米Oracleは10月7日、フィンランドのオープンソースソフト企業Innobase OYの買収を発表した。買収条件は非公開。MySQL 的に一番嫌なのは、これにより InnoDB の開発が停滞し、現在注力しているエンタープライズ分野への進出がストップしてしまうこと、だろうか。とりあえずいつでも PostgreSQL に切り替えられるように、MySQL の方言は極力使わないようにしてお...
昨日から今日にかけて はまったこと。DBI + DBD::mysql + MySQL で、RaiseError が効かない。 use DBI; my $dbh = DBI->connect( 'DBI:mysql:dbname', 'user', 'password', {AutoCommit => 0, RaiseError => 1, PrintError => 0} ) || die; my $sth = $dbh->prepare("select * from not_exist_table"); $sth->execute;上記のように、存在しないテーブルやカラムに対して DML を発行しようとすると、RaiseE...