Ver Mensaje Individual
  #2 (permalink)  
Antiguo 17/04/2011, 13:40
Avatar de gnzsoloyo
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: Problema Clave Primaria

Cita:
Iniciado por senit Ver Mensaje
He hecho una tabla en mysql, y he puesto como clave primaria un campo llamado cod_material, en tipo le he puesto varchar y en longitud 6. Yo este campo lo quiero para almacenar códigos de materiales, y cuando meto los códigos a traves de php si son números no me da problema, pero si en el codigo van letras si que me da problemas, es decir un codigo de 5 caracteres como puede ser 00001, no da problemas, pero si pongo a0001, si que me los da, porque ocurre esto, ¿Alguien me puede ayudar?
Sin ver el código me imagino que estás asignando el valor poniendo la cifra en el VALUE() del INSERT, pero no la estás encerrando entre apóstrofes... ¿no?
El tema es que cuando pones un número para ser asignado a un campo VARCHAR, lo tienes que poner entre apóstrofes para que sea una cadena:
Código MySQL:
Ver original
  1. INSERT INTO tabla(tabla_id) VALUES('00001')
Si lo pones sin ellos y es número, MySQL hace una conversión implícita y pone la cadena.
Pero cuando lo pones así:
Código MySQL:
Ver original
  1. INSERT INTO tabla(tabla_id) VALUES(a0001)
MySQL asume que a0001 es un nombre de columna, pero no una cadena. En esos caso tienes que ponerlo si o si entre apóstrofes pues no existe conversión implícita para esos casos.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)