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

establecer indice desde código

Estas en el tema de establecer indice desde código en el foro de Mysql en Foros del Web. Hola, alguien sabe si se puede establecer que columna será el indice ya creada una tabla desde la linea de comandos? ya descubrí como hacerlo ...
  #1 (permalink)  
Antiguo 12/04/2010, 18:28
 
Fecha de Ingreso: julio-2009
Mensajes: 90
Antigüedad: 14 años, 8 meses
Puntos: 4
Pregunta establecer indice desde código

Hola, alguien sabe si se puede establecer que columna será el indice ya creada una tabla desde la linea de comandos?


ya descubrí como hacerlo

ALTER TABLE inventario_neumaticos ADD PRIMARY KEY (id_interno);
ALTER TABLE inventario_neumaticos ADD INDEX (id_interno);

pero no puedo convertir la columna en autoincrementable por que me da error :(

ALTER TABLE `inventario_neumaticos` CHANGE `id_interno` `id_interno` INT( 10 ) UNSIGNED NOT NULL DEFAULT '0' AUTO_INCREMENT

MySQL ha dicho:

#1067 - Invalid default value for 'id_interno'

cualquier luz será agradecida
__________________
C[^L*]D
[email protected]
tokkaido.blogspot.com
No hay mejor forma de aprender que enseñar

Última edición por tokkaido; 12/04/2010 a las 18:41 Razón: faltaba información
  #2 (permalink)  
Antiguo 12/04/2010, 19:04
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: establecer indice desde código

No confundas conceptos: Indices y claves primarias no son lo mismo, aunque uno incluya al otro...

El problema es mas o menos simple: Un auto_increment no puede tener un valor por default, y menos en cero, el auto_increment se inicia en uno (1).
__________________
¿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 13/04/2010, 07:37
 
Fecha de Ingreso: julio-2009
Mensajes: 90
Antigüedad: 14 años, 8 meses
Puntos: 4
Respuesta: establecer indice desde código

lo que estaba haciendo mi estimado gnzsoloyo era crear una query en navicat para vaciar,borrar y copiar unas tablas sobre las que estoy haciendo pruebas. Normalmente lo hacia manualmente pero termina aburriendote de esa manera asi que pensé ¿porque no hacer una consulta que lo haga por mi? y asi quedo:

Código MySQL:
Ver original
  1. truncate solicitud;
  2. truncate detalle_solicitud;
  3. truncate inventario_taller;
  4. truncate historico_neumaticos;
  5. drop table if exists  inventario_neumaticos;
  6. drop table if exists neum_bodegas;
  7. drop table if exists neum_vehiculos;
  8. CREATE TABLE  inventario_neumaticos AS SELECT * FROM  inventario_neumaticos_copy;
  9. CREATE TABLE  neum_bodegas AS SELECT * FROM  neum_bodegas_copy;
  10. CREATE TABLE  neum_vehiculos AS SELECT * FROM  neum_vehiculos_copy;
  11. ALTER TABLE inventario_neumaticos ADD  PRIMARY KEY (id_interno);
  12. ALTER TABLE inventario_neumaticos ADD INDEX (id_interno);
  13. ALTER TABLE `inventario_neumaticos` CHANGE `id_interno` `id_interno` INT( 10 ) UNSIGNED NOT NULL  AUTO_INCREMENT;
  14. ALTER TABLE neum_bodegas ADD  PRIMARY KEY (id_interno);
  15. ALTER TABLE neum_bodegas ADD INDEX (id_interno);
  16. ALTER TABLE `neum_bodegas` CHANGE `id_interno` `id_interno` INT( 10 ) UNSIGNED NOT NULL  AUTO_INCREMENT;
  17. ALTER TABLE neum_vehiculos ADD  PRIMARY KEY (id_interno);
  18. ALTER TABLE neum_vehiculos ADD INDEX (id_interno);
  19. ALTER TABLE `neum_vehiculos` CHANGE `id_interno` `id_interno` INT( 10 ) UNSIGNED NOT NULL  AUTO_INCREMENT;

como el CREATE TABLE no me creaba el primary key lo tenia que hacer despues de creado. ç

Gracias.
__________________
C[^L*]D
[email protected]
tokkaido.blogspot.com
No hay mejor forma de aprender que enseñar
  #4 (permalink)  
Antiguo 13/04/2010, 08:42
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: establecer indice desde código

¡Haberlo sabido antes, te lo aclaraba!

Si, es cierto. Crear una tabla desde un select produce unos cuantos problemas:
- No conserva FK, ni PK.
- No conserva índices declarados.
- Cambia el tipo de datos numéricos según la salida del SELECT, por ejemplo, un campo DOUBLE puede convertirse en DECIMAL con menos longitud, o volverse INT si no hay valores en él. Un campo VARCHAR puede reducir su ancho si el contenido no abarca la totalidad del rango original, etc.

O sea, ten cuidado.
__________________
¿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 13/04/2010, 09:10
 
Fecha de Ingreso: julio-2009
Mensajes: 90
Antigüedad: 14 años, 8 meses
Puntos: 4
Respuesta: establecer indice desde código

muchas gracias por tus consejos y aclaraciones, son siempre bienvenidos.
__________________
C[^L*]D
[email protected]
tokkaido.blogspot.com
No hay mejor forma de aprender que enseñar

Etiquetas: establecer, indice
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 17:14.