Re: update and select question

2005-04-27 Thread mfatene
Hi,
Look at select ... for update here  :

http://dev.mysql.com/doc/mysql/en/innodb-locking-reads.html


Mathias

Selon $B2 9bJv(B [EMAIL PROTECTED]:


 i use this mail first .

 i have a problem in under sql program:


 UPDATE
 NGLDENHDT
 SET
 EDT_HUK_FLG = :EDT_HUK_FLG
 WHERE
   KAI_CDE = :KAI_CDE
   AND EDT_NUM = (SELECT MAX(EDT_NUM)
FROM NGLDENHDT
WHERE KAI_CDE = :KAI_CDE_T1
AND EDT_NUM != '');

 the error message was:

 You can't specify target table 'NGLDENHDT' for update in FROM
 clause


 what can i do ,help me ?


   thank you very much!!




-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]



Re: update and select question

2005-04-27 Thread Philippe Poelvoorde
$B2+9bJv(B wrote:
(B i use this mail first .
(B 
(B i have a problem in under sql program:
(B 
(B 
(B UPDATE
(B NGLDENHDT
(B SET
(B EDT_HUK_FLG = :EDT_HUK_FLG
(B WHERE
(B   KAI_CDE = :KAI_CDE
(B   AND EDT_NUM = (SELECT MAX(EDT_NUM)
(BFROM NGLDENHDT
(BWHERE KAI_CDE = :KAI_CDE_T1
(BAND EDT_NUM != '');
(B 
(B the error message was:
(B 
(B You can't specify target table 'NGLDENHDT' for update in FROM
(B clause
(B 
(B
(BYou can't update and select with a subquery at the same time the very
(Bsame table.
(Btry a 2-fold action :
(BBEGIN;
(BSELECT @val:= MAX(EDT_NUM)
(B FROM NGLDENHDT
(BWHERE KAI_CDE = :KAI_CDE_T1
(BAND EDT_NUM != '';
(B UPDATE
(B NGLDENHDT
(B SET
(B EDT_HUK_FLG = :EDT_HUK_FLG
(B WHERE
(B   KAI_CDE = :KAI_CDE
(B   AND EDT_NUM = @val;
(BCOMMIT;
(B
(B 
(B what can i do ,help me ?
(B 
(B 
(B   thank you very much!!
(B 
(B
(B
(B-- 
(BPhilippe Poelvoorde
(BCOS Trading Ltd.
(B
(B-- 
(BMySQL General Mailing List
(BFor list archives: http://lists.mysql.com/mysql
(BTo unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]

Re: update and select question

2005-04-27 Thread Jigal van Hemert
From: "$B2+9bJv(B"
(B
(B UPDATE
(B NGLDENHDT
(B SET
(B EDT_HUK_FLG = :EDT_HUK_FLG
(B WHERE
(B   KAI_CDE = :KAI_CDE
(B   AND EDT_NUM = (SELECT MAX(EDT_NUM)
(BFROM NGLDENHDT
(BWHERE KAI_CDE = :KAI_CDE_T1
(BAND EDT_NUM != '');
(B
(B the error message was:
(B
(B You can't specify target table 'NGLDENHDT' for update in FROM
(B
(BFor a small table you could use:
(B
(BUPDATE
(BNGLDENHDT
(BSET
(BEDT_HUK_FLG = :EDT_HUK_FLG
(BWHERE
(B  KAI_CDE = :KAI_CDE
(B  AND EDT_NUM != '')
(BORDER BY
(B  EDT_NUM DESC
(BLIMIT 1;
(B
(BThis would sort the table on EDT_NUM with the biggest number first and then
(Bonly update a single record.
(B
(BRegards, Jigal.
(B
(B
(B-- 
(BMySQL General Mailing List
(BFor list archives: http://lists.mysql.com/mysql
(BTo unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]

update and select question

2005-04-26 Thread 黄高峰
i use this mail first .
(B
(Bi have a problem in under sql program:
(B
(B
(BUPDATE
(BNGLDENHDT
(BSET
(BEDT_HUK_FLG = :EDT_HUK_FLG
(BWHERE
(B  KAI_CDE = :KAI_CDE
(B  AND EDT_NUM = (SELECT MAX(EDT_NUM)
(B   FROM NGLDENHDT
(B   WHERE KAI_CDE = :KAI_CDE_T1
(B   AND EDT_NUM != '');
(B
(Bthe error message was:
(B
(BYou can't specify target table 'NGLDENHDT' for update in FROM
(Bclause
(B
(B
(Bwhat can i do ,help me ?
(B
(B
(B  thank you very much!!

update and select question

2005-04-26 Thread 黄高峰

(Bi use this mail first .
(B
(Bi have a problem in under sql program:
(B
(B
(BUPDATE
(BNGLDENHDT
(BSET
(BEDT_HUK_FLG = :EDT_HUK_FLG
(BWHERE
(B  KAI_CDE = :KAI_CDE
(B  AND EDT_NUM = (SELECT MAX(EDT_NUM)
(B   FROM NGLDENHDT
(B   WHERE KAI_CDE = :KAI_CDE_T1
(B   AND EDT_NUM != '');
(B
(Bthe error message was:
(B
(BYou can't specify target table 'NGLDENHDT' for update in FROM
(Bclause
(B
(B
(Bwhat can i do ,help me ?
(B
(B
(B  thank you very much!!

FW: update and select question

2005-04-26 Thread J.R. Bullington
http://dev.mysql.com/doc/mysql/en/update.html
(B
(BSee the last line on the page. You cannot, in the most current stable
(Bversion of MySQL, SELECT from the table you are trying to UPDATE.
(B
(BJ.R. 
(B
(B-Original Message-
(BFrom: $B2+9bJv(B [mailto:[EMAIL PROTECTED]
(BSent: Tuesday, April 26, 2005 11:26 PM
(BTo: mysql@lists.mysql.com
(BSubject: update and select question 
(B
(B
(Bi use this mail first .
(B
(Bi have a problem in under sql program:
(B
(B
(BUPDATE
(BNGLDENHDT
(BSET
(BEDT_HUK_FLG = :EDT_HUK_FLG
(BWHERE
(B  KAI_CDE = :KAI_CDE
(B  AND EDT_NUM = (SELECT MAX(EDT_NUM)
(B   FROM NGLDENHDT
(B   WHERE KAI_CDE = :KAI_CDE_T1
(B   AND EDT_NUM != '');
(B
(Bthe error message was:
(B
(BYou can't specify target table 'NGLDENHDT' for update in FROM
(Bclause
(B
(B
(Bwhat can i do ,help me ?
(B
(B
(B  thank you very much!!

smime.p7s
Description: S/MIME cryptographic signature