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

¿Tiene algun error este codigo SQL de MySQL?

Estas en el tema de ¿Tiene algun error este codigo SQL de MySQL? en el foro de Mysql en Foros del Web. CREATE TABLE user ( id int(8) unsigned NOT NULL auto_increment, user varchar(20) collate latin1_general_ci default NULL, password varchar(25) collate latin1_general_ci default NULL, PRIMARY KEY (`ID`) ...
  #1 (permalink)  
Antiguo 20/08/2009, 11:02
 
Fecha de Ingreso: octubre-2008
Mensajes: 155
Antigüedad: 15 años, 6 meses
Puntos: 1
¿Tiene algun error este codigo SQL de MySQL?

CREATE TABLE user (
id int(8) unsigned NOT NULL auto_increment,
user varchar(20) collate latin1_general_ci default NULL,
password varchar(25) collate latin1_general_ci default NULL,
PRIMARY KEY (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=8 ;
  #2 (permalink)  
Antiguo 20/08/2009, 11:23
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: ¿Tiene algun error este codigo SQL de MySQL?

No tiene ningún error puntual, salvo que estás usando palabras reservadas como nombres de campos (USER y PASSWORD, por caso). No es buena idea porque puede dar lugar a errores indetectables en las consultas.
Cuando forzosamente debas usar estos nombres, es conveniente que los encierres y los manejes siemrpe entre acentos agudos (`), para evitar inconvenientes.
__________________
¿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 20/08/2009, 11:34
 
Fecha de Ingreso: octubre-2008
Mensajes: 155
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: ¿Tiene algun error este codigo SQL de MySQL?

Entonces este seria el modo perfeto de crear el codigo:

CREATE TABLE `users` (
`ID` int(8) unsigned NOT NULL auto_increment,
`user` varchar(20) collate latin1_general_ci default NULL,
`password` varchar(25) collate latin1_general_ci default NULL,
PRIMARY KEY (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=8 ;
  #4 (permalink)  
Antiguo 20/08/2009, 14:10
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: ¿Tiene algun error este codigo SQL de MySQL?

Ten cuidado con esto: AUTO_INCREMENT=8
Le estás diciendo que comience del numero 8 de ID, con lo que se pierden 7 entradas de índice y registros.
__________________
¿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 20/08/2009, 15:57
 
Fecha de Ingreso: octubre-2008
Mensajes: 155
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: ¿Tiene algun error este codigo SQL de MySQL?

Gracias por dicirmelo.
Ahora esta bien asi?

CREATE TABLE `users` (
`id` int unsigned NOT NULL auto_increment,
`user` varchar(20) collate latin1_general_ci default NULL,
`password` varchar(25) collate latin1_general_ci default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
  #6 (permalink)  
Antiguo 20/08/2009, 19:09
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: ¿Tiene algun error este codigo SQL de MySQL?

Si, el código está OK.
Sigo recomendando que no uses palabras reservadas. Eventualmente pueden producirse problemas...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 24/08/2009, 08:23
 
Fecha de Ingreso: octubre-2008
Mensajes: 155
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: ¿Tiene algun error este codigo SQL de MySQL?

Y como me recomiendas que sea la tabla?
Me puedes dar un ejemplo porfavor?
GRACIAS
  #8 (permalink)  
Antiguo 24/08/2009, 08:27
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: ¿Tiene algun error este codigo SQL de MySQL?

Cita:
CREATE TABLE `users` (
`id` int unsigned NOT NULL auto_increment,
`user` varchar(20) collate latin1_general_ci default NULL,
`password` varchar(25) collate latin1_general_ci default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
A lo que se refiere gnzsoloyo es que no utilices campos llamdos user, password en la declaración de una tabla.

La forma de corregirlo, es ponerle otro nombre a los campos. Por ejemplo:

Código mysql:
Ver original
  1. CREATE TABLE `users` (
  2. `user_s` varchar(20) collate latin1_general_ci default NULL,
  3. `password_s` varchar(25) collate latin1_general_ci default NULL,
  4. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #9 (permalink)  
Antiguo 24/08/2009, 11:23
 
Fecha de Ingreso: octubre-2008
Mensajes: 155
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: ¿Tiene algun error este codigo SQL de MySQL?

Y que tal asi?

Código MySQL:
Ver original
  1. CREATE TABLE 'usuarios' (
  2. 'usuario' VARCHAR(20) COLLATE latin1_general_ci DEFAULT NULL,
  3. 'clave' VARCHAR(30) COLLATE latin1_general_ci DEFAULT NULL,
  4. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;

Y que otras decomendaciones me pueden dar?
GRACIAS
  #10 (permalink)  
Antiguo 24/08/2009, 12:44
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: ¿Tiene algun error este codigo SQL de MySQL?

Una cosa es el apostrofe y otra las comillas.

Quedaría así:
Código sql:
Ver original
  1. CREATE TABLE `usuarios` (
  2. `id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
  3. `usuario` VARCHAR(20) COLLATE latin1_general_ci DEFAULT NULL,
  4. `clave` VARCHAR(30) COLLATE latin1_general_ci DEFAULT NULL,
  5. PRIMARY KEY ('id')
  6. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #11 (permalink)  
Antiguo 31/08/2009, 08:59
 
Fecha de Ingreso: octubre-2008
Mensajes: 155
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: ¿Tiene algun error este codigo SQL de MySQL?

Gracias, he modificado un poco el codigo y le quite la linea PRIMARY KEY (`id`).
De tal forma que quedaria asi:
Código sql:
Ver original
  1. CREATE TABLE `usuarios` (
  2. `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
  3. `usuario` VARCHAR(20) COLLATE latin1_general_ci DEFAULT NULL,
  4. `clave` VARCHAR(30) COLLATE latin1_general_ci DEFAULT NULL
  5. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
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:15.