Jump to content
informaster

MySQL DELETE: SQL Error (1093): You can't specify target table 'Clientes' for update in FROM clause

Recommended Posts

informaster

Boa Tarde a todos

Alguem me sabe ajudar:

Faço este Select:

SELECT * FROM Clientes
WHERE Clientes_Codigo 
IN (Select Clientes_Codigo From Clientes  where DataUltModificacao >= '2017-11-28 13:07:45')

Ele devolve me dois Clientes_Codigo duplicados

Depois quando faço isto:

DELETE FROM Clientes
WHERE Clientes_Codigo 
IN (Select Clientes_Codigo From Clientes  where DataUltModificacao >= '2017-11-28 13:07:45')

Ele não apaga os dois registos duplicados

e devolve me este erro:

SQL Error (1093): You can't specify target table 'Clientes' for update in FROM clause

 

Peço que alguem me ajude

Obrigado

Um bem haja

:(


 

 

Nuno Revez

@informaster

Share this post


Link to post
Share on other sites
Rui Carlos

O MySQL não te permite fazer o DELETE com base numa subquery sobre a tabela onde vais eliminar membros.

Experimenta com:

DELETE FROM Clientes
WHERE Clientes_Codigo 
IN (SELECT * FROM (Select Clientes_Codigo From Clientes  where DataUltModificacao >= '2017-11-28 13:07:45') TMPTBL)

A ideia é levar o MySQL a criar uma tabela temporária, e passa a ser essa tabela temporária a usada no DELETE.

Share this post


Link to post
Share on other sites
informaster

Boa Dia

Rui Carlos

 

Agradeço muito a sua resposta.

Pois sem ela não teria resolvido o problema. Resolveu tudo... Estava a dias parado aqui.

Desejo que tudo na vida seja bom para si e para os seus.

 

Outra coisa que reparei é que o campo datatime quando eu escrevo a data com a hora fica logo no formato ano - mes - dia depois hora : minutos : segundos

A outra base de dados de onde veem essas datas com horas está ao contrario dia - mes - ano depois hora: minutos : segundos

Existe no sql alguma maneira que quando gravo as o campo datetime e ficar no formato original dia mes ano!!?!!?!?

 

Grande abraço

e novamente muito obrigado pela sua ajuda.

:)


 

 

Nuno Revez

@informaster

Share this post


Link to post
Share on other sites
HappyHippyHippo

Desconfio que na outra base de dados não está a guardar num campo "datetime" mas sim "string"


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
informaster

Boas

 

Pois defacto nao posso mexer na base de dados primaria a minha questão é depois quando faço a query no mysql deveria ser no formato dia mes ano hora minuto e segundos

 


 

 

Nuno Revez

@informaster

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.