Empty string inserting a zero, not a null

前端 未结 4 1366
一整个雨季
一整个雨季 2021-02-14 07:42

My insert statement looks like this:

INSERT INTO foo (bar) VALUES (\'\');

The bar field was created like so:

bar I         


        
4条回答
  •  不知归路
    2021-02-14 08:34

    MySQL by default attempts to coerce invalid values for a column to the correct type. Here, the empty string '' is of type string, which is neither an integer nor NULL. I suggest taking the following steps:

    1. Change the query to the following: INSERT INTO foo (bar) VALUES (NULL);
    2. Enable strict mode in MySQL. This prevents as many unexpected type and value conversions from occurring. You will see more error messages when you try to do something MySQL doesn't expect, which helps you to spot problems more quickly.

提交回复
热议问题