還暦過ぎたエンジニアの挑戦

還暦過ぎても好奇心だけは忘れない エンジニア ひかるです

MENU

足枷でもある - mysql

mysql

データベースの設計をするときに、データの正規化、整合性を担保したいという気持ちはわからなくもない。
こっちのテーブルAにある値は別のテーブルBに存在するものじゃなきゃいけない。。。みたいなの

設計者の気持ちもわからなくはないが、でも、そういったことはシステムで塞いでおいたほうが良い。そんな定義をデータベースにされ、雁字搦めにされたのではいろいろと足枷になり、やりにくくてしょうがないこともある。

システムのバージョンアップに弊害がでることもあるし、 テストにじゃまだからこのデータは消したい!と思っても消せない。

えっ?そんな~
FOREIGN_KEYで削除できない!?
というときのマジック

SET FOREIGN_KEY_CHECKS=0;

これで心置きなくDELETEしよう

ついでにUPDATEするときのこれも

SET SQL_SAFE_UPDATES = 0;

データ変更もできないと仕事が止まるしね