Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 
Índice general » Otros Temas » Bases de Datos » Comando Delete Responder al tema
Nuevo tema


Página 1 de 1  [ 7 mensajes ] 
 
Nota 2008-09-09 10:32 @480
Avatar de Usuario
Perlero Adicto
Registrado: 2007-07-10 18:26 @810
Ubicación: MOnterrey NL
Mensajes: 244
Comando Delete
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:

Syntax: [ Download ] [ Hide ]
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';


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


Nota 2008-09-09 14:55 @663
Avatar de Usuario
Vive para Perl en Español
Registrado: 2003-11-18 16:13 @717
Ubicación: Buenos Aires
Mensajes: 455
No entiendo la duda exactamente... te muestro un ejemplo...

Syntax: [ Download ] [ Hide ]
Using sql Syntax Highlighting
DELETE FROM netmon_owner.routers a WHERE a.ip = '10.250.20.18' LIMIT 1;


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


Nota 2008-09-09 15:38 @693
Avatar de Usuario
Perlero Adicto
Registrado: 2007-07-10 18:26 @810
Ubicación: MOnterrey NL
Mensajes: 244
:? 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:
       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


Nota 2008-09-09 15:49 @700
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10249
¿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


Nota 2008-09-09 16:44 @739
Avatar de Usuario
Perlero Adicto
Registrado: 2007-07-10 18:26 @810
Ubicación: MOnterrey NL
Mensajes: 244
:(
Creo que mejor me voy por el update, al realiza mi select.

Syntax: [ Download ] [ Hide ]
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';


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
Syntax: [ Download ] [ Hide ]
Using sql Syntax Highlighting
UPDATE netmon_owner.routers a SET estado =1 WHERE idrouter =4100;


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


Nota 2008-09-09 16:50 @743
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10249
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


Nota 2008-09-09 17:37 @775
Avatar de Usuario
Perlero Adicto
Registrado: 2007-07-10 18:26 @810
Ubicación: MOnterrey NL
Mensajes: 244
: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
Syntax: [ Download ] [ Hide ]
Using sql Syntax Highlighting
WHERE A.fecha BETWEEN '5/Sep/2008' AND '6/Sep/2008'


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


Responder al tema  [ 7 mensajes ] 

Reglas del Foro
No puedes abrir nuevos temas en este Foro
No puedes responder a temas en este Foro
No puedes editar tus mensajes en este Foro
No puedes borrar tus mensajes en este Foro
No puedes enviar adjuntos en este Foro

Publicidad

Socializa

Síguenos por Twitter

Suscríbete GRATUITAMENTE al Boletín de Perl en Español

Saltar a:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Traducción al español por Huan Manwë para phpbb-es.com
phpBB SEO