MySQL

MySQLで、PrimaryKey以外を条件としてINSERT or UPDATE のような事を実現する

MySQLの REPLACE 文は、プライマリーキー(正確にはPrimaryKey、またはUniqKey)を条件にして一致するものがある場合は DELETE&INSERT、一致するものがなければ INSERT のみを行うという事ができるます。似たような事を行うものとして、Oracleの MERGE 文が…

WindowsのApacheでPHPを動かそうとしたときに、Cannot load mysql extension. といわれた

Windows 上に、Apache + PHP + MySQL の環境を構築していて、ハマった問題と解決策のメモ。■事象 PHPからMySQLに繋ごうとすると、Cannot load mysql extension.というエラーが発生。Apache のログにも以下が出力されていた。 PHP Warning: PHP Startup: Unab…

MySQLでNULLを含むカラムにINDEXを張っても大丈夫

「NULLを含むカラムにINDEXを張っても使用されないので、できればNULLを意味するデフォルト値を設定しよう」という記述を何回かみたことがあって、てっきりそうだと思い込んでいました。が、MySQLのマニュアルには、 column_name IS NULL を使用した検索では…

MySQLで大きなデータを登録しようとするとcom.mysql.jdbc.PacketTooBigException: 発生

MySQLで、3M程度のデータを登録しようとすると、以下のような例外が発生。 com.mysql.jdbc.PacketTooBigException: Packet for query is too large (3526504 > 1048576). You can change this value on the server by setting the max_allowed_packet' varia…