2009-10-24 3 views
1

Pourquoi est-ce que j'obtiens une erreur de syntaxe sur l'instruction SQL suivante sous sqlite?Erreur de syntaxe SQL sur la mise à jour de table

erreur lit:

SQL Error: near "SET": syntax error

UPDATE nova 
     SET Nome = (select Nome from assessores where nova.ID = assessores.ID), 
     SET Morada = (select Morada from assessores where nova.ID = assessores.ID), 
     SET Email = (select Email from assessores where nova.ID = assessores.ID), 
     SET TelfCasa = (select TelfCasa from assessores where nova.ID = assessores.ID), 
     SET TelfEmprego = (select TelfEmprego from assessores where nova.ID = assessores.ID), 
     SET Telemovel = (select Telemovel from assessores where nova.ID = assessores.ID), 
     SET Fax = (select Fax from assessores where nova.ID = assessores.ID) 
WHERE EXISTS (select * from assessores where nova.ID = assessores.ID); 

Si je tente de qualifier complètement les noms de champs SET, l'erreur devient:

SQL Error: near ".": syntax error

Répondre

6

Vous avez seulement besoin d'un SET au début. Vous pouvez également simplifier la requête en réunissant les deux tables et en éliminant les sous-requêtes.

UPDATE nova JOIN assessores ON nova.ID = assessores.ID 
SET nova.Nome  = assessores.Nome, 
    nova.Morada  = assessores.Morada, 
    nova.Email  = assessores.Email, 
    nova.TelfCasa = assessores.TelfCasa, 
    nova.TelfEmprego = assessores.TelfEmprego, 
    nova.Telemovel = assessores.Telemovel, 
    nova.Fax   = assessores.Fax; 
+0

DOH! Merci John. –

+0

Vous avez raison sur l'utilisation de 'SET' mais je ne pense pas que SQLite supporte la syntaxe' UPDATE' multi-table. Vous montrez la syntaxe MySQL. –

+0

Il le supporte. Ce n'était pas le problème. Cela faisait un moment que j'avais utilisé SQL pour la dernière fois et en regardant la syntaxe sur la documentation de SQLite (http://www.sqlite.org/lang_update.html) il manquait complètement le fait que SET ne faisait pas partie du cycle field = value. –

0

Le site Sqllite héberge la documentation, y compris une référence SQL. Recherchez la syntaxe pour UPDATE here.