Hello Clifford,
It was really nice of you to provide an insight into the non strict mode. I
agree to what you said regarding the length of the field. I was developing
the project using sqlite and since it was ready to go live i wanted to test
it using mysql in my local system. When i ran syncdb i was getting the
above said error and just for the sake of testing i changed the mode to non
strict. Am not planning the same for my production server. Once again
thanks a lot for your input. Cheers.

Thanks and Regards,

Swaroop Shankar V



On Mon, Mar 19, 2012 at 2:22 AM, CLIFFORD ILKAY
<clifford_il...@dinamis.com>wrote:

> On 03/17/2012 04:49 PM, Swaroop Shankar V wrote:
>
>> Hello All,
>> I was developing a website and the development was all done using sqlite
>> database. Now the development is almost complete so i need to test the
>> site using mysql. When i did a syncdb on a fresh database i got the
>> following error:
>>
> [snip]
>
>  _mysql_exceptions.Warning: Data truncated for column 'name' at row 1
>>
>> As you can see its a mysql warning since i had changed mysql mode to non
>> strict.
>>
>
> Hello,
>
> Others have already explained why this happened. Let me add that you
> should not run MySQL in non-strict mode. Django is actually saving you from
> creating junk data in this case but that would not necessarily be the case
> if you were to do insert or update operations on that same database with
> something other than Django.
>
> MySQL used to have a "feature", which I considered a bug, whereby it would
> happily accept a string longer than the width of the column in which that
> data was to be stored and not even mention that it had truncated your
> string to fit into that particular column.
>
> Recent versions of MySQL allow you to set the database to non-strict mode
> whereby it will still allow you to insert a string longer than the width of
> a column but at least, it will generate a warning message. Older versions
> would just silently truncate. Either scenario is unacceptable in a
> database. Why would you want the database to tell you after-the-fact, "Oh,
> by the way, I just screwed up your data." after-the-fact? The first job of
> a database should be to protect data integrity so if you're attempting to
> insert 51 characters into a varchar(50) column, it should not accept it
> under any circumstances and throw an exception.
>
> The MySQL docs <http://dev.mysql.com/doc/**refman/5.0/en/server-sql-mode.*
> *html <http://dev.mysql.com/doc/refman/5.0/en/server-sql-mode.html>>,
> which I've quoted below, explains this.
>
> ###
>    TRADITIONAL
>
>    Make MySQL behave like a “traditional” SQL database system. A simple
> description of this mode is “give an error instead of a warning” when
> inserting an incorrect value into a column.
>    Note
>
>    The INSERT/UPDATE aborts as soon as the error is noticed. This may not
> be what you want if you are using a nontransactional storage engine,
> because data changes made prior to the error may not be rolled back,
> resulting in a “partially done” update. (Added in MySQL 5.0.2)
>
> When this manual refers to “strict mode,” it means a mode where at least
> one of STRICT_TRANS_TABLES or STRICT_ALL_TABLES is enabled.
> ###
> --
> Regards,
>
> Clifford Ilkay
> Dinamis
> 1419-3266 Yonge St.
> Toronto, ON
> Canada  M4N 3P6
>
> <http://dinamis.com>
> +1 416-410-3326
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Django users" group.
> To post to this group, send email to django-users@googlegroups.com.
> To unsubscribe from this group, send email to django-users+unsubscribe@**
> googlegroups.com <django-users%2bunsubscr...@googlegroups.com>.
> For more options, visit this group at http://groups.google.com/**
> group/django-users?hl=en<http://groups.google.com/group/django-users?hl=en>
> .
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com.
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.

Reply via email to