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

Error 1054 dbforge

Estas en el tema de Error 1054 dbforge en el foro de Mysql en Foros del Web. Hola , bueno soy nuevo aquí y quería contar mi situación aver si me podeís ayudar, el caso esque en el dbforge tengo realizada dos ...
  #1 (permalink)  
Antiguo 11/03/2013, 11:24
Avatar de Moutinho10  
Fecha de Ingreso: marzo-2013
Mensajes: 9
Antigüedad: 11 años, 1 mes
Puntos: 0
Exclamación Error 1054 dbforge

Hola , bueno soy nuevo aquí y quería contar mi situación aver si me podeís ayudar, el caso esque en el dbforge tengo realizada dos procedimientos para mi base de datos
este es uno :
Código MySQL:
Ver original
  1. CREATE DEFINER = 'root'@'localhost'
  2. PROCEDURE carritocompra.AniadirAlCarrito(IN p_codigocarrito INT, IN p_codigoproducto INT, IN p_unidades INT, IN p_precio DECIMAL (10,2), OUT p_error VARCHAR(255))
  3. DECLARE v_articulo INT;
  4. SELECT codigoarticulo INTO v_articulo FROM articuloscarrito WHERE codigocarrito=p_codigocarrito AND codigoarticulo=p_codigoproducto;
  5.  
  6. IF NOT EXISTS (SELECT codigo
  7.                FROM carrito
  8.                WHERE codigo=p_codigocarrito)THEN
  9. SET p_error = 2;
  10.   IF p_codigoproducto=v_articulo THEN
  11.   UPDATE articuloscarrito SET cantidad=p_unidades WHERE articuloscarrito.codigoarticulo=p_codigoproducto AND articuloscarrito.codigocarrito=p_codigocarrito;
  12.   SET p_error=1;
  13.   else
  14.   INSERT INTO articuloscarrito (codigocarrito,codigoarticulo,cantidad) VALUES (p_codigocarrito,p_codigoproducto,p_unidades);
  15.   set p_error= 0;
  16.   end if;
  17.  
  18. select p_error ;
y este el 2 con el que lo llamo
Código MySQL:
Ver original
  1. CREATE DEFINER = 'root'@'localhost'
  2. PROCEDURE carritocompra.mostraraniadircarrito(IN p_codigocarrito INT, IN p_codigoproducto INT, IN p_unidades INT, IN p_precio DECIMAL(10,5))
  3. Declare v_error INT ;
  4.  
  5. CALL AniadirAlCarrito(p_codigocarrito,p_codigoproducto,p_unidades,p_precio,v_error);
  6.  
  7. If v_error = 0 THEN
  8.   select "El articulo ha sido introducido";
  9.   if v_error = 1 THEN
  10.   select "el articulo ha sido actualizado en el carrito";
  11.   else
  12.      SELECT "no se ha realizado la operacion porque el carrito no existe en la BD";
  13.   end if;

Bueno la cosa esta en que cuando intento llamar
Código MySQL:
Ver original
  1. mysql> call mostraraniadircarrito(1,1,100,100);
  2. ERROR 1054 (42S22): Unknown column 'codigocarrito' in 'where clause'
me da ese error, lo que me mosquea esque si ese mismo ejercicio lo llevo a una base de datos nueva "carritocompra" m es decir copio los dos tal cual y los creo en la base de datos nueva vacia, que solo contiene los datos de las tablas, si me funcionan,no me da error, ademas otra cosa que me desconcierta esque cuando me traigo esos mismos procedimientos de un compañero realizado un poco diferente pero que funcionan, si me los traigo y los sustituyo por los mismo en mi base de datos me sigue dando el mismo error, aunque los de mis compañero funciona, pero al llevarlo a mi base de datos ya no, sale el mismo ERROR 1054 , mi docente me ha dicho que el ha conseguido arreglar ese error en su dbforge con mi base de datos, me ha dicho que ha conseguido cambiar algo en mi base de datos que es una copia de la mia y ya le funciona, ademas me ha dicho que no se tarda mas de 1 minuto en arreglarlo, entonces no es problema de sintaxis, y si el campo codigo carrito existe en la tabla donde estoy buscando, entonces nose que puede ser, aver si vosotros podeis ayudarme , a alguien que tarbaje con ese programa tb y le haya pasado lo mismo que estoy desesperado.

Muchas Gracias por su tiempo

Última edición por gnzsoloyo; 11/03/2013 a las 11:56 Razón: Código MySQL sin etiquetar.
  #2 (permalink)  
Antiguo 11/03/2013, 12:03
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, 5 meses
Puntos: 2658
Respuesta: Error 1054 dbforge

Pues para hacértelo simple, ERROR 1054 (42S22): Unknown COLUMN 'codigocarrito' IN 'where clause', significa lis a y llanamente que en la base donde estás corriendo ese SP, la tabla usada en la consulta donde en el WHERE se invoca a la columna "codigocarrito" no tiene ningún campo con esa denominación.
No hay más opciones que eso.

Así que una de dos: o el nombre está mal escrito en la tabla, o bien el SP no es correcto.
En cualquiera de los dos casos deberás revisar meticulosamente el SP y la tabla para asegurarte de lo que realmente existe.

Por otro lado, ten cuidado con traer o llevar Sp entre bases. Por mas "iguales" que creas que son eso no implica que alguien en algún momento no se haya tecleado mal y en lugar de llamarse "codigocarrito" no se llame "codgocarrito".
¿Se entiende?
Ese sería el error más común de todos...

En todo esto, lo que tienes que tener en cuenta es que MySQL no se equivoca. Si te dice que no existe, es porque realmente no existe con ese nombre.
En lo primero que debes desconfiar es en tu trabajo. Jamás dejes de tenerlo en cuenta.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 11/03/2013, 13:08
Avatar de Moutinho10  
Fecha de Ingreso: marzo-2013
Mensajes: 9
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: Error 1054 dbforge

Gracías, esque es la cosa que los dos tenemosla base de datos iguales, y problema sintactico no es porque es lo primeor que mire, por eso esot mosqueado, y e slo que me sorporender que een una si vaya y en la otra no, pero gracias igualemnte serigue mirandolo...
  #4 (permalink)  
Antiguo 11/03/2013, 13:21
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, 5 meses
Puntos: 2658
Respuesta: Error 1054 dbforge

No tiene ninguna relación que tengas los datos iguales, porque la advertencia no es es sobre datos. Es sobre la estructura de la tabla.
¿Se entiende claramente eso?
Es la tabla la que no tiene la columna indicada, y en eso no hay discusión posible.

Revisa la tabla en la base de datos donde está ejecutando con error.

Hazme caso. MySQL no inventa errores.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 11/03/2013, 13:39
Avatar de Moutinho10  
Fecha de Ingreso: marzo-2013
Mensajes: 9
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: Error 1054 dbforge

Ya ya se que no se inventa jejeje, pero esque solo hay una tabla que tiene codigcarrito y ahí esta bien escrito , esque es por eso los unicos codigocarrito es l nombre del campo de una tabla y mi parametro de entrada , la cosa lo que he acabo de comprobar, es que he borrado la tabla articuloscarrito donde se encuentra ese campo codigocarrito, e inmediatamente la he vuelto a crear tral cual estaba, con sus foreign keys correspondientes y ahora el procedimiento si me va....., y si te preguntas no no he escrito ningun campo diferente ni nada por el estilo , la he escrito tal cual la tenía, esto cada vez me desconcierta mas...
  #6 (permalink)  
Antiguo 11/03/2013, 13:48
Avatar de Moutinho10  
Fecha de Ingreso: marzo-2013
Mensajes: 9
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: Error 1054 dbforge

eso de que puede ser, si borro la tabla la creo tal cual y ya me funciona....?, y si, la tabla esta creada tal cual la tenia, no puesto nada diferente porque lo he supercomprobado, porque puede ser que antes me diera error y ahora no si la tabla es exactamente igual solo que creada de nuevo?
  #7 (permalink)  
Antiguo 11/03/2013, 13:59
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, 5 meses
Puntos: 2658
Respuesta: Error 1054 dbforge

Hazme un favor, antes de seguir más allá: Ejecuta esto en la base donde se produce el error:

Código MySQL:
Ver original
  1. SHOW CREATE TABLE articuloscarrito;
Copia y pega aquí el resultado de esa sentencia, y luego seguimos viendo el tema.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #8 (permalink)  
Antiguo 11/03/2013, 14:04
Avatar de Moutinho10  
Fecha de Ingreso: marzo-2013
Mensajes: 9
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: Error 1054 dbforge

mysql> SHOW CREATE TABLE articuloscarrito;
+------------------+------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
-------------------------------------------------+
| Table | Create Table






|
+------------------+------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
-------------------------------------------------+
| articuloscarrito | CREATE TABLE `articuloscarrito` (
`codigocarrito` int(11) NOT NULL,
`codigoarticulo` int(11) NOT NULL,
`cantidad` int(11) DEFAULT NULL,
`precioventa` decimal(10,2) DEFAULT NULL,
PRIMARY KEY (`codigocarrito`,`codigoarticulo`),
KEY `FK_articuloscarrito_articulos_codigo` (`codigoarticulo`),
CONSTRAINT `FK_articuloscarrito_articulos_codigo` FOREIGN KEY (`codigoarticulo
`) REFERENCES `articulos` (`codigo`),
CONSTRAINT `FK_articuloscarrito_carrito_codigo` FOREIGN KEY (`codigocarrito`)
REFERENCES `carrito` (`codigo`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AVG_ROW_LENGTH=3276 |
+------------------+------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
-------------------------------------------------+
1 row in set (0.00 sec)
eso es lo que sale =)
  #9 (permalink)  
Antiguo 11/03/2013, 14:14
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, 5 meses
Puntos: 2658
Respuesta: Error 1054 dbforge

No parece haber realmente problemas allí, pero...
¿Hay algún TRIGGER sobre esa tabla?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #10 (permalink)  
Antiguo 11/03/2013, 16:23
Avatar de Moutinho10  
Fecha de Ingreso: marzo-2013
Mensajes: 9
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: Error 1054 dbforge

si Gracias, borre un terigger que tenai una linea de update asociado a articulos carrito y ya me funciona , ya que el trigger no lo tenia terminado, una vez quitado ya funciona y he probado poneindo otra vez el triger y ya si funciona. Muchisimas Gracias , seras mi nuevo dios XDDDD
  #11 (permalink)  
Antiguo 11/03/2013, 16:53
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, 5 meses
Puntos: 2658
Respuesta: Error 1054 dbforge

Bueno, eso explica el problema...

Me alegro que resolvieras el problema. Suerte con el TP.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: Ninguno
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:21.