• Publicidad

Comando Delete

Todo acerca de las bases de datos que existen: SQL, MySQL, Oracle, Postgres, CSV, etc.

Comando Delete

Notapor Kiloko » 2008-09-09 10:32 @480

Buen día, perleros. Hoy vengo con una nueva pregunta ya que me estoy iniciando en el mundo del SQL, por comandos, pero tengo unas dudas sobre el comando delete. Y es que usualmente utilizo el update o select. Por ejemplo, yo realizo una consulta:

Sintáxis: [ Descargar ] [ Ocultar ]
Using sql Syntax Highlighting
SELECT a.idrouter, a.ip, a.intext, a.posicion, a.estado, a.nombre,
       a.idcliente, a.memoria, a.host, a.usr, a.pas, a.iploopback,
       a.hexaip, a.hexaiploop, a.tipo, a.idcid, a.nomcli, a.usr_cli,
       a.pas_cli, a.config
FROM netmon_owner.routers a
   WHERE a.ip  ='10.250.20.18';
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


de la cual obtengo una respuesta, y quiero eliminar esa respuesta de la bd.
Puesto que no sería práctico hacer un update, set, para cada campo igual a null.

¿Alguien me podría echar la mano o dar un norte de cómo utilizar este comando? Porque la documentación que encuentro me confunde un poco...

SAludos
Nunca interrumpas a tu enemigo cuando está cometiendo un error
Napoleón Bonaparte
Avatar de Usuario
Kiloko
Perlero nuevo
Perlero nuevo
 
Mensajes: 243
Registrado: 2007-07-10 18:26 @810
Ubicación: MOnterrey NL

Publicidad

Notapor monoswim » 2008-09-09 14:55 @663

No entiendo la duda exactamente... te muestro un ejemplo...

Sintáxis: [ Descargar ] [ Ocultar ]
Using sql Syntax Highlighting
DELETE FROM netmon_owner.routers a WHERE a.ip = '10.250.20.18' LIMIT 1;
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


Te elimina el primer registro que encuentre con esa IP, si le sacas el limit 1 te borra todos... ¡ OJO CON ESO !

Espero que te sirva.

Saludos
MonoSwim
Perl Programming Language
Avatar de Usuario
monoswim
Perlero nuevo
Perlero nuevo
 
Mensajes: 452
Registrado: 2003-11-18 16:13 @717
Ubicación: Buenos Aires

Notapor Kiloko » 2008-09-09 15:38 @693

:? Es que por ahí va mi duda, y es donde tengo confusión.

Yo tengo mi tabla netmon_owner.routers, y esta tabla tiene los campos
Código: Seleccionar todo
       a.idrouter, a.ip, a.intext, a.posicion, a.estado, a.nombre,
       a.idcliente, a.memoria, a.host, a.usr, a.pas, a.iploopback,
       a.hexaip, a.hexaiploop, a.tipo, a.idcid, a.nomcli, a.usr_cli,
       a.pas_cli, a.config


Ahora bien, si hago un filtro por a.ip con el IP que puse de ejemplo me aparecen los datos que le corresponden a ese IP. Y mi problema es que tengo 2 IP iguales, la única diferencia es que en el campo de estado uno aparece con 0 y otro con 1, y quiero borrar el que aparece con 0.

Pero esta tabla tiene un buen de registros, por lo que tengo que ser muy cuidadoso, de borrar exactamente lo que quiero.

He de ahí mi problema, que necesito saber bien el uso del delete para borrar tal espacio específico de esa tabla.

:(
Nunca interrumpas a tu enemigo cuando está cometiendo un error
Napoleón Bonaparte
Avatar de Usuario
Kiloko
Perlero nuevo
Perlero nuevo
 
Mensajes: 243
Registrado: 2007-07-10 18:26 @810
Ubicación: MOnterrey NL

Notapor explorer » 2008-09-09 15:49 @700

¿La solución de borrar todas las IP con estado igual a 0 resolvería el problema?

¿O hay que añadir la condición de que debe existir, además, una IP igual con estado igual a 1?
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14476
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor Kiloko » 2008-09-09 16:44 @739

:(
Creo que mejor me voy por el update, al realiza mi select.

Sintáxis: [ Descargar ] [ Ocultar ]
Using sql Syntax Highlighting
SELECT a.idrouter, a.ip, a.intext, a.posicion, a.estado, a.nombre,
       a.idcliente, a.memoria, a.host, a.usr, a.pas, a.iploopback,
       a.hexaip, a.hexaiploop, a.tipo, a.idcid, a.nomcli, a.usr_cli,
       a.pas_cli, a.config
  FROM netmon_owner.routers a
  WHERE nombre  ='ID_003_ACT';
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


Me aparecen 2 filas con campos casi iguales.
Y de esas 2 filas quiero modificar algunos campos.

Por ejemplo, si quiero hacer un update uso
Sintáxis: [ Descargar ] [ Ocultar ]
Using sql Syntax Highlighting
UPDATE netmon_owner.routers a SET estado =1 WHERE idrouter =4100;
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


actualizó la tabla netmon_owner en el campo estado donde quiero que aparezca un 1 y con la condición donde idrouter = 4100. ¿Sería lo mismo con delete?
Nunca interrumpas a tu enemigo cuando está cometiendo un error
Napoleón Bonaparte
Avatar de Usuario
Kiloko
Perlero nuevo
Perlero nuevo
 
Mensajes: 243
Registrado: 2007-07-10 18:26 @810
Ubicación: MOnterrey NL

Notapor explorer » 2008-09-09 16:50 @743

Lo normal es primero hacer un select con condiciones where para ver qué resultados da. Y cuando estamos conformes con ellos, cambiamos por delete y sé que los registros anteriores han quedado borrados (salvo error del motor de la base de datos).
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14476
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor Kiloko » 2008-09-09 17:37 @775

:wink: Creo que por ahí va la cosa. Voy a practicar con una tabla que acabo de crear... Una pregunta más:
¿cómo hago la consulta de tiempo para una hora especifica? Lo que hago es
Sintáxis: [ Descargar ] [ Ocultar ]
Using sql Syntax Highlighting
WHERE A.fecha BETWEEN '5/Sep/2008' AND '6/Sep/2008'
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


Pero necesito hacerla con un time, pero no logro que funcione. Alguien me podría dar un ejemplo...
Nunca interrumpas a tu enemigo cuando está cometiendo un error
Napoleón Bonaparte
Avatar de Usuario
Kiloko
Perlero nuevo
Perlero nuevo
 
Mensajes: 243
Registrado: 2007-07-10 18:26 @810
Ubicación: MOnterrey NL


Volver a Bases de datos

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 4 invitados