Insertar o modificar dependiendo de una condición
Me gustaría saber si se puede hacer esto.
Digamos que tengo una tabla Tabla1 con dos campos: Codigo y Cantidad y tengo los siguientes registros: +--+--+ |1 |23| |2 |12| +--+--+ ahora sumo seis unidades a la cantidad del registro cuyo codigo es dos: Código:
update Tabla1 set Cantidad = Cantidad + 6 where Codigo = 2; |1 |23| |2 |18| +--+--+ pero si ese registro no existiera, por ejemplo: +--+--+ |1 |23| |3 |12| +--+--+ y hago: Código:
update Tabla1 set Cantidad = Cantidad + 6 where Codigo = 2; Código:
insert into Tabla1 values (2, 6); Código:
if existe registro then ¿Es posible? |
Con Firebird se puede hacer utiizando la sentencia "Update or Insert", no conozco muy bien MySQL, por lo que solo podria decirte que tal vez tambien tenga dicha sentencia.
|
Claro que se puede:
|
¡Mil gracias!
|
Si creo el procedimiento me funciona pero yo quiero prescindir de crear un procedimiento. Hago esto pero me dice que hay un error de sintaxis:
¿No es posible usar una sentencia IF THEN ELSE fuera de una subrutina? |
No sé si en los componentes que usas tienes uno llamado Script. Viene a funcionar igual que el Script window de IBExpert.
Saludos |
Hablo de MySQL, de momento sin tener nada que ver con Delphi, sólo digo que me da error de sintaxis al usar un IF THEN ELSE si no es dentro de un procedure o function.
Lo quiero para hacer un insert o update dependiendo de si el registro ya existe o no. |
Al final he conseguido esto pero mediante una sentencia llamada replace:
REPLACE funciona exactamente como INSERT, excepto que si una fila antigua tiene el mismo valor para la clave primaria que una nueva entonces la fila antigua es borrada después de que la nueva fila sea insertada. |
La franja horaria es GMT +2. Ahora son las 04:26:54. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi