set unique key checks 0 in mydql In a table i have unique value check for the combination of box_number,price,start_val,end_val

so there can not be a two box number with same number which have same price , start_val and end_val..

table data right now

| box_type_id | box_number | price |start_val | end_val
|  1          |   7        | 5.00  |100       |1
|  2          |   5        | 10.00 |50        |40
|  3          |   5        | 5.00  |100       |1


what i want to do
i want to change box number 7 with 5 for box_type_id 1 and change box number 5 with 7 for box type id 3 ; my query is below... giving me error 

MySQL Database Error: Duplicate entry '7-5.00-100-1' for key 'unique_index'

but here i am setting unique key check to 0. before executing query. 

My query

SET UNIQUE_CHECKS=0;
 Update `box_types` `bt` SET `bt`.`box_number` = "7" where `bt`.`box_type_id` = "3" ;
 Update `box_types` `bt` SET `bt`.`box_number` = "5" where `bt`.`box_type_id` = "1" ;
SET UNIQUE_CHECKS=1;


how do i solve this problem.. is there any other prblem ? please guide me..
Swapping is a 3-step process (for this and many other situations).  Go via a temp id.  Something like:

Update `box_types` `bt` SET `bt`.`box_number` = "-1" where `bt`.`box_type_id` = "3" ;
Update `box_types` `bt` SET `bt`.`box_number` = "5" where `bt`.`box_type_id` = "1" ;
Update `box_types` `bt` SET `bt`.`box_number` = "7" where `bt`.`box_number` = "-1" ;


(If box_number is UNSIGNED, then pick some value that will work:  maybe 0?  Maybe 9999999?)