Good afternoon, my question is this, there is a postgres sql query
that does not work, I am doing the query q is:
for r in rws:
try:
db.ratecltes.insert(id_rutas=r.rutas.id,
id_clte=r.clientes.id, rate=r.rutaproveedor.valor)
except:
# # # HERE IS THE ERROR # # #
query=((db.ratecltes.id_rutas==r.rutas.id) &
(db.ratecltes.id_clte==r.clientes.id))
db(query).update(rate=int(r.rutaproveedor.valor))
Web2py The message sent is as follows.
File "/home/marcelo/web2py/applications/administrador/controllers/
default.py", line 1087, in cargar_tarifas
db(query).update(rate=int(r.rutaproveedor.valor))
File "/home/marcelo/web2py/gluon/sql.py", line 3285, in update
self._db._execute(query)
File "/home/marcelo/web2py/gluon/sql.py", line 958, in <lambda>
self._execute = lambda *a, **b: self._cursor.execute(*a, **b)
InternalError: transacción abortada, las órdenes serán ignoradas hasta
el fin de bloque de transacción
PostgreSQL modify the settings to see the log_statement = all, and
this is the result:
2010-06-03 16:31:52 CLT ERROR: transacción abortada, las órdenes
serán ignoradas hasta el fin de bloque de transacción
2010-06-03 16:31:52 CLT SENTENCIA: UPDATE ratecltes SET rate=60.0
WHERE (ratecltes.id_rutas=1 AND ratecltes.id_clte=3);
2010-06-03 16:32:51 CLT WARNING: ya hay una transacción en curso
2010-06-03 16:32:51 CLT WARNING: ya hay una transacción en curso
2010-06-03 16:32:54 CLT WARNING: ya hay una transacción en curso
2010-06-03 16:33:00 CLT WARNING: ya hay una transacción en curso
2010-06-03 16:33:00 CLT ERROR: llave duplicada viola restricción de
unicidad «ratecltes_ndx»
2010-06-03 16:33:00 CLT SENTENCIA: INSERT INTO ratecltes(id_rutas,
id_clte, rate) VALUES (1, 3, 60.0);
2010-06-03 16:33:00 CLT ERROR: transacción abortada, las órdenes
serán ignoradas hasta el fin de bloque de transacción
2010-06-03 16:33:00 CLT SENTENCIA: UPDATE ratecltes SET rate=60.0
WHERE (ratecltes.id_rutas=1 AND ratecltes.id_clte=3);
I hope I can help, not that I'm failing.