"Andrea" <[EMAIL PROTECTED]> wrote:
>
> In MySql I create this table:
>
> CREATE TABLE `prova` (
> `Gruppo` int(11) NOT NULL default '0',
> `Prog` int(11) NOT NULL default '0',
> `Descrizione` varchar(100) default '',
> PRIMARY KEY (`Gruppo`, `Prog`)
> ) TYPE=MyISAM;
>
> Running this:
> UPDATE Prog SET Prog=Prog+1 WHERE Gruppo=16 AND Prog>=1
>
> I get "Duplicate entry".
>
> Is this a MySql bug?
No. Row with Prog=3 and Gruppo=16 may be found before row with Prog=4 and Gruppo=16.
In this case UPDATE gives you error "Duplicate entry" because you already have row
with Prog=4 and Gruppo=16.
>How can I do this?
Use ORDER BY clause in UPDATE statement:
http://www.mysql.com/doc/en/UPDATE.html
ORDER BY is supported from v4.0.0.
--
For technical support contracts, goto https://order.mysql.com/?ref=ensita
This email is sponsored by Ensita.net http://www.ensita.net/
__ ___ ___ ____ __
/ |/ /_ __/ __/ __ \/ / Egor Egorov
/ /|_/ / // /\ \/ /_/ / /__ [EMAIL PROTECTED]
/_/ /_/\_, /___/\___\_\___/ MySQL AB / Ensita.net
<___/ www.mysql.com
--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]