FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
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 update Tabla1 set Cantidad = Cantidad + 6 where Codigo = 2 else insert into Tabla1 values (2, 6); ¿Es posible? Última edición por noob fecha: 29-10-2008 a las 22:03:21. |
#2
|
||||
|
||||
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.
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!" http://www.purodelphi.com/ http://www.nosolodelphi.com/ |
#3
|
||||
|
||||
Claro que se puede:
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Última edición por rgstuamigo fecha: 29-10-2008 a las 23:50:12. |
#4
|
|||
|
|||
¡Mil gracias!
|
#5
|
|||
|
|||
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? Última edición por noob fecha: 03-11-2008 a las 02:20:45. |
#6
|
||||
|
||||
No sé si en los componentes que usas tienes uno llamado Script. Viene a funcionar igual que el Script window de IBExpert.
Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#7
|
|||
|
|||
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. |
#8
|
|||
|
|||
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. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Insertar y modificar al mismo tiempo ! | hecospina | Firebird e Interbase | 4 | 17-09-2008 13:40:28 |
Insertar y/o modificar un campo con decimales | rafita | Varios | 5 | 30-07-2007 10:41:28 |
Como insertar, eliminar y modificar en c#? | danytorres | .NET | 2 | 09-05-2006 22:29:47 |
lentitud al Modificar/Insertar | kukinn | Conexión con bases de datos | 3 | 23-03-2004 09:37:57 |
Problema el insertar/modificar registro | ing_alsaac | Conexión con bases de datos | 0 | 29-02-2004 09:18:15 |
|