Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Error al crear procedimiento almacenado en MYSQL

Estas en el tema de Error al crear procedimiento almacenado en MYSQL en el foro de Mysql en Foros del Web. Hola, Soy nuevo en mysql, y quiero crear el siguiente procedimiento almacenado create procedure elimina_repetidos () begin drop table repetidos; create table repetidos select email,count(*) ...
  #1 (permalink)  
Antiguo 02/01/2008, 11:29
Avatar de daniel.manchego  
Fecha de Ingreso: mayo-2006
Mensajes: 111
Antigüedad: 17 años, 11 meses
Puntos: 0
Sonrisa Error al crear procedimiento almacenado en MYSQL

Hola,

Soy nuevo en mysql, y quiero crear el siguiente procedimiento almacenado

create procedure elimina_repetidos ()
begin

drop table repetidos;

create table repetidos select email,count(*) as cantidad from email group by email having count(*) >1;

delete from email using email, repetidos
WHERE email.email=repetidos .email;

end

qué puede estar mal ??? uso el usuario root.

Saludos-
__________________
Daniel Manchego
http://dmanchego.blogspot.com
  #2 (permalink)  
Antiguo 02/01/2008, 11:58
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Re: Error al crear procedimiento almacenado en MYSQL

en principio no estás defniendo la tabla. Además, la inserción no está bien escrita y el borrado no cumple con lo que buscás.

Cita:
CREATE PROCEDURE ELIMINAR REPETIDOS()
BEGIN
DROP TABLE REPETIDOS;
CREATE TABLE REPETIDOS(EMAIL CHAR(255), CANTIDAD INT);
INSERT INTO REPETIDOS SELECT EMAIL, COUNT(*) AS CANTIDAD FROM EMAIL GROUP BY EMAIL HAVING COUNT(*)>1;
END;
------------------------------------------------------------
Todo el resto no está bien pensado. Si usas un cruzamiento entre las dos tablas, van a desaparecer todos los que figuren en
la tabla origen, sin dejar ninguno.

Última edición por gnzsoloyo; 02/01/2008 a las 12:12
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:15.