I knew it was an option somewhere... Perfect!

Thanks

JamesDR wrote:
> JamesDR wrote:
>> Scott Baker wrote:
>>> If I create the following table, and then try and insert the following
>>> data both inserts work. It looks like the second one works (it shouldn't
>>> because Last is NULL) because it assumes Last = ''. Is there a way I can
>>> make it NOT assume that? If Last is not specified it should reject that
>>> command. Is that possible?
>>>
>>> ---------------------------------------------------------------
>>>
>>> DROP TABLE IF EXISTS foo;
>>>
>>> CREATE TABLE foo (
>>>    ID INTEGER PRIMARY KEY AUTO_INCREMENT,
>>>    First VarChar(30),
>>>    Last VarChar(30) NOT NULL,
>>>    Zip INTEGER
>>> );
>>>
>>> INSERT INTO foo (First, Last, Zip) VALUES ('Jason','Doolis',97013);
>>> INSERT INTO foo (Last) VALUES (17423);
>>>
>> In your last insert example, Last is inserted as 17423. Which is not null.
>>
> 
> Yup, empty string, the manual says this...
> http://dev.mysql.com/doc/refman/5.0/en/data-type-defaults.html
> 
> However it does say that to enforce NOT NULL you would have to change
> the sql_mode
> http://dev.mysql.com/doc/refman/5.0/en/server-sql-mode.html
> EG:
> SET SESSION sql_mode='STRICT_ALL_TABLES';
> INSERT INTO foo (zip) VALUES (12345);
> SET SESSION sql_mode='';
> 
> I get an error on the insert statement:
> "Field 'Last' doesn't have a default value."
> 
> You may need to set sql_mode to STRICT_ALL_TABLES before the insert or
> do it in my.cnf or as a command line parameter.
> 
> 


-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to