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

duda basica(hacer un insert)

Estas en el tema de duda basica(hacer un insert) en el foro de Mysql en Foros del Web. Buenas estoy intentando hacer esta insert: Cita: insert into wikiloc_actividades (actividad) values ('parapente') Y me sale este mensaje de error:#1062 - Duplicate entry '0' for ...
  #1 (permalink)  
Antiguo 16/12/2011, 09:33
 
Fecha de Ingreso: febrero-2011
Mensajes: 78
Antigüedad: 13 años, 2 meses
Puntos: 0
duda basica(hacer un insert)

Buenas estoy intentando hacer esta insert:

Cita:
insert into wikiloc_actividades (actividad) values ('parapente')
Y me sale este mensaje de error:#1062 - Duplicate entry '0' for key 'PRIMARY'

En la base de datos solo hay dos tablas, wikiloc_actividades y wikiloc_id_actividad la cual es autoincrement, con lo cual no entiendo porque me hace la insert en la posicion 0 en vez de en la 47 (sería la siguiente al último registro)
El caso es que he probado hacer esta consulta en plan manual pero nanay, tampoco se la traga:

Código:
insert into wikiloc_actividades (actividad) values ('parapente') where id_actividad > 46;
Alguien sabe como solventar esta duda super noob y basica ?
  #2 (permalink)  
Antiguo 16/12/2011, 09:44
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
Respuesta: duda basica(hacer un insert)

Puede haber un error en la definición de tu tabla. Otra cosa parece difícil, ada la sintaxis del INSERT.
¿Podrías postear el CREATE TABLE?

Puedes recuperarlo usando
Código MySQL:
Ver original
  1. SHOW CREATE TABLE `wikiloc_actividades`;
__________________
¿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 16/12/2011, 10:11
 
Fecha de Ingreso: febrero-2011
Mensajes: 78
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: duda basica(hacer un insert)

A ver la insert es muy sencilla, permiteme que corrija la sintaxis de antes por esta (es que estaba escrita a la rapidez):

insert into wikiloc_actividades(`actividad`) Values ('hola')

El tema es que esta insert sí que funciona, pero si hago una despues de esta me dará problemas, por el error que ya expliqué antes, me dice que el índice 0 ya existe


lo que me preguntaste antes está aquí

wikiloc_actividades CREATE TABLE `wikiloc_actividades` (
`id_actividad` int(11) NOT NULL,
`actividad` varchar(100) NOT NULL,
PRIMARY KEY (`id_actividad`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT
  #4 (permalink)  
Antiguo 16/12/2011, 10:29
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
Respuesta: duda basica(hacer un insert)

El problema es simple: Si observas, el campo "id_actividad" está definido como INT UNSIGNED (eso es por el 11), pero no como AUTO_INCREMENT, por lo que el valor que toma es cero al hacer el INSERT... cada vez que lo hagas.
Como una pK no puede duplicarse, la segunda vez también intenta poner cero, y falla.
Corrige la tabla. Si ese campo es AUTO_INCREMENT, debes especificarselo.
__________________
¿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 16/12/2011, 11:43
 
Fecha de Ingreso: febrero-2011
Mensajes: 78
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: duda basica(hacer un insert)

Cita:
Iniciado por gnzsoloyo Ver Mensaje
El problema es simple: Si observas, el campo "id_actividad" está definido como INT UNSIGNED (eso es por el 11), pero no como AUTO_INCREMENT, por lo que el valor que toma es cero al hacer el INSERT... cada vez que lo hagas.
Como una pK no puede duplicarse, la segunda vez también intenta poner cero, y falla.
Corrige la tabla. Si ese campo es AUTO_INCREMENT, debes especificarselo.
gracias por la respuesta crack !

Etiquetas: tabla
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 12:40.