My insert statement looks like this:
INSERT INTO foo (bar) VALUES (\'\');
The bar
field was created like so:
bar I
You're not inserting NULL
into the table; you're inserting an empty string (which apparently maps to zero as an int). Remember that NULL
is a distinct value in SQL; NULL != ''
. By specifying any value (other than NULL
), you're not inserting NULL
. The default only gets used if you don't specify a value; in your example, you specified a string value to an integer column.