Because We Love Happy Coding

フリーライターからエンジニアへ。発信力だけあり余ってる感じ

初学者が陥りがちなMySQLの罠.md

ambiguous

複数のテーブルに同名の列(フィールド)がある場合、フィールド名だけ書いてもどちらのテーブルかわからない。

テーブル名を指定する。table.field

value for delete_flag is too long

booleanに文字列として"true"/"false"を入れようとしている。booleanの場合はダブルクォートしない。

INSERT、UPDATE、DELETEは広義の更新(update)である。

Javaのコマンドなどで、SelectとUpdateが分かれているため混乱する。SELECTは参照のみでデータを操作しない。INSERT、UPDATE、DELETEはデータを操作するため、広義のupdateになる。

この'(変数名)'はこのロケーションで閉じられていません(Resource leak: 'foobar' is not closed at this location)

Statementなどがきちんとclose()されていない。

.sqlファイルを使ってデータベースを変更している最中に止まる。

別プロセスで接続されている

Eclipseなど、別のプロセスがデータベースに接続していないか確認する。

テーブルを削除する順番が外部キー依存にひっかかっている。

テーブル削除の順番を変える。