why are not using any where condition in the update statment

On Wed, May 16, 2012 at 1:24 PM, GF <gan...@gmail.com> wrote:

> Good morning,
> I have an application where the user ids were stored lowercase.
> Some batch import, in the user table some users stored  a uppercase
> id, and for some applicative logic, in other tables that have a
> foreign key to the user table, their user ids are stored lowercase.
> MySQL didn't throw any error probalby because the collation used is
> "case insensitive".
> My problem is that the application is Java and java strings are case
> sensitive, so now I want to set user ids to lowercase EVERYWHERE.
>
> I supposed that I could execute with ease these commands:
> - update mytable1 set USER_ID = LOWER(USER_ID);
> - update mytable2 set USER_ID = LOWER(USER_ID);
> - update mytable3 set USER_ID = LOWER(USER_ID);
>
> But for some tables I got some Foreign key constraint to throw an
> error. (butwhy they didn't throw an error on the insert but just on
> the update???)
> And if I try to disable foreign key checks during these updates, I get
> some "duplicate key" errors where USER_ID is a part of composite key
> with other columns. (but I don't have any data that might cause a real
> duplicate key error just changing the case of one column)
>
> Have you any idea how to solve this situation without
> stopping/recreating the DB? (it's a production environment)
> Thanks
>
> --
> MySQL General Mailing List
> For list archives: http://lists.mysql.com/mysql
> To unsubscribe:    http://lists.mysql.com/mysql
>
>

Reply via email to