On Friday 20 December 2002 10:30, Thierry Michalowski wrote:

> I'm trying to run the following SQL statement on a table of my MySQL DB:
>
> insert into MYTABLE(ID, VALUE, SORTKEY)
>        select T.ID, 'to to', MAX(T.SORTKEY) + 1 from MYTABLE as T group by
> T.ID
>
> This was suggested by a SQL expert (which I'm unfortunately not) , and
> works perfectly on MS SQL Server. :-(
> But, on MySQL it raises the following error:
> ERROR 1093: INSERT TABLE 'mytable' isn't allowed in FROM table list
>
> The following statement:
> insert into MYTABLE(ID, VALUE, SORTKEY) select ID, 'to to', MAX(SORTKEY) +
> 1 from MYTABLE group by ID
> raises the following error:
> ERROR 1066: not unique table/alias: 'mytable'
> After inserting the first "to to" value in a new row with the first ID
> value and a correctly incremented sortkey.
>
> I'm running MySQL-MAX 3.23.53 on Windows NT 4.0 SP6.
>
> What am I actually trying to do?

You can't insert data in the same table from which you retrieve: 
        http://www.mysql.com/doc/en/INSERT_SELECT.html 

> Well, let me explain:
>
> I have a table MYTABLE consisting of 3 fields: id , value , sortkey
> id is an integer, not unique .
> value is an arbitrary char value , like "M1" or "-- --"
> sortkey is an integer which is used to sort the values associated with an
> id.
>
> Table example:
> 3,"--",0
> 3,"M1",2
> 3,"M2",3
> 6,"--",0
> 7,"KA",0
> 7,"A trick",1
> ...
>
> What I need to do is: Insert a new value, associated with every available
> id , with a sortkey equal to the maximum sortkey for this id plus 1 . Like
> if I want to insert "to to" , it would end in my example table as:
>
> 3,"--",0
> 3,"M1",2
> 3,"M2",3
> 3,"to to",4
> 6,"--",0
> 6,"to to",1
> 7,"KA",0
> 7,"A trick",1
> 7,"to to",2
> ...
>
> So, can you SQL and MySQL experts please tell me :
> 1-What did my friend do wrong that does not work on MySQL?
> 2-How the hell am I supposed to solve my problem in SQL only? (I'm mostly
> interested into this one, of course!)

Pick up your data into temporary table and then insert them into original. 
table. 



-- 
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




---------------------------------------------------------------------
Before posting, please check:
   http://www.mysql.com/manual.php   (the manual)
   http://lists.mysql.com/           (the list archive)

To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php

Reply via email to