2014-04-12 10 views
6

ho bisogno di eseguire la query comeSQLAlchemy: aggiornamento from_select

UPDATE node 
SET node.parent_id = node_node.parent_id, 
    node.label = node_node.label 
FROM node_node 
WHERE node_node.child_id = node_id 

utilizzando SQLAlchemy. Ho cercato i documenti e trovato solo insert().from_select(), ma non update().from_select(). So che posso raggiungere lo stesso programma, ma ho bisogno che sia il più veloce possibile.

È possibile? Potresti darmi un esempio o link a documenti/qualsiasi indizio?

risposta

5

Supponendo che t_node sia node Istanza di tabella, mentre t_node_node - node_node Istanza di tabella, vedere la seguente istruzione.

upd = (t_node.update() 
     .values(
      parent_id = t_node_node.c.parent_id, 
      label = t_node_node.c.label, 
      ) 
     .where(t_node_node.c.child_id == t_node.c.node_id) 
     ) 

Ulteriori informazioni sulla documentazione Inserts, Updates and Deletes per ulteriori informazioni.

Problemi correlati