9
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

MySQLの自動変換が厄介な時の設定

Last updated at Posted at 2013-11-17

##状況
親切なのか不親切なのか、カラムの型と異なったデータを挿入してもそれとなく丸めたり切ったりしてwarningを吐きつつもinsertやupdateに成功しちゃったりしてて困っている。

##例えば
tinyintにそれ以上の値を入れたら丸めてくれたり、サイズ以上の文字列を入れるとその分カットして入れてくれたり・・・

##対策
上記のようなものに関しては、

SET SESSION sql_mode='TRADITIONAL';

こんな感じでsql_modeを設定することで厳密にエラーとしてみてくれるようになります。
環境に応じて、SESSIONでなくGLOBALにしたり、cnfに書いたりすれば良いかと思います。
型チェックを厳格にするのはこれでいいと思いますが、他にも色々と細かく制御可能なので、
詳しくは
4.2.6. SQL モード
ココらへんを。

9
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?