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

Fulltext ????

Estas en el tema de Fulltext ???? en el foro de Mysql en Foros del Web. Hola amigos, necesito ayuda para poder cambiar mis campos a FULLTEXT. utiliso el servidor WAMP5 con mysql 5.0, ya tengo creada una bd con una ...
  #1 (permalink)  
Antiguo 17/01/2014, 10:32
Avatar de leonaryoel  
Fecha de Ingreso: octubre-2013
Ubicación: Villa Clara
Mensajes: 64
Antigüedad: 11 años, 1 mes
Puntos: 0
Fulltext ????

Hola amigos, necesito ayuda para poder cambiar mis campos a FULLTEXT. utiliso el servidor WAMP5 con mysql 5.0, ya tengo creada una bd con una tabla de nombre usuario pero necesito poner los campos nombre y email en FULLTEXT y no me funciona de esta manera:

Código SQL:
Ver original
  1. CREATE TABLE usuario ... aca creo todos los campos necesarios para esta TABLE y al final pongo:
  2. FULLTEXT('nombre','email');

Esto me da error en otro campo que declaro más abajo de tipo date. Qué puede ser????

Última edición por gnzsoloyo; 17/01/2014 a las 10:40
  #2 (permalink)  
Antiguo 17/01/2014, 10:41
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Fulltext ????

Cita:
Qué puede ser????
En principio, que los apóstrofes (') no se usan para los nombres de tablas ni objetos de BBDD. Se usan pura y exclusivamente para cadenas de texto.
No los confundas con los acentos agudos (`).
__________________
¿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 17/01/2014, 10:48
Avatar de leonaryoel  
Fecha de Ingreso: octubre-2013
Ubicación: Villa Clara
Mensajes: 64
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: Fulltext ????

si ok gracias eso ya lo intenté también quitando los ' pero nada
  #4 (permalink)  
Antiguo 17/01/2014, 11:05
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Fulltext ????

No lo intentaste correctamente, o metiste la pata en otras cosas.
Postea el CREATE TABLE completo, sin omitir nada.
__________________
¿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 17/01/2014, 11:20
Avatar de leonaryoel  
Fecha de Ingreso: octubre-2013
Ubicación: Villa Clara
Mensajes: 64
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: Fulltext ????

Aca está

Código SQL:
Ver original
  1. CREATE TABLE `usuarios` (
  2.   `id` INT(11) NOT NULL AUTO_INCREMENT,
  3.   `nombre` text,
  4.   `email` text,
  5.   `password` text,
  6.   `fecha_n` text,
  7.   `genero` text,
  8.   `fecha_reg` DATE DEFAULT NULL,  -------> aca es donde me aparece la cruz roja del error.
  9.   `fecha_e` DATE DEFAULT NULL,
  10.   `pais` text,
  11.   `avatar` text,
  12.   PRIMARY KEY  (`id`)
  13. ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=2
  14. FULLTEXT (nombre,email);;
[/CODE]

Última edición por gnzsoloyo; 17/01/2014 a las 11:32
  #6 (permalink)  
Antiguo 17/01/2014, 11:43
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Fulltext ????

Tienes más de un error. Por lo menos tres:

1) No se debe definir tantos tipos TEXT y menos para datos tan cortos. ¿Me puedes explicar para qué le pondrías a un nombre una longitud de 65.536 caracteres?
2) Los índices FULLTEXT no operan con tablas InnoDB. Sólo aplican a las tablas MyISAM.
3) La definición del índice va dentro de la lista de columnas, no fuera de ella.

Deberías consultar el manual de referencia antes de escribir estas sentencias.

Código MySQL:
Ver original
  1. CREATE TABLE `usuarios` (
  2.       `nombre` VARCHAR(50),
  3.       `email` VARCHAR(300),
  4.       `password` VARCHAR(50),
  5.       `fecha_n` DATE,
  6.       `genero` VARCHAR(1),
  7.       `fecha_reg` DATE NULL,
  8.       `fecha_e` DATE NULL,
  9.       `pais` VARCHAR(50),
  10.       `avatar` VARCHAR(300),
  11.       PRIMARY KEY  (`id`),
  12.       FULLTEXT (nombre,email)
  13.     ) ENGINE=MyISAM  DEFAULT CHARSET=latin1;
Finalmente: Usa los hiighlights correscpondientes. Para eso se pone ese combo.
__________________
¿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 17/01/2014, 12:38
Avatar de leonaryoel  
Fecha de Ingreso: octubre-2013
Ubicación: Villa Clara
Mensajes: 64
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: Fulltext ????

Ok comprendo perfectamente lo que dices, ya lo intenté así como me pones y el error es este.

Código MySQL:
Ver original
  1. CREATE TABLE `usuarios` (
  2. `id` UNSIGNEDINT NOT NULL AUTO_INCREMENT ,
  3. `nombre` VARCHAR( 100 ) NULL ,
  4. `email` VARCHAR( 300 ) NULL ,
  5. `password` VARCHAR( 50 ) NULL ,
  6. `fecha_n` DATE NULL ,
  7. `genero` VARCHAR( 10 ) NULL ,
  8. `fecha_reg` DATE NULL ,
  9. `fecha_e` DATE NULL ,
  10. `pais` VARCHAR( 50 ) NULL ,
  11. `avatar` VARCHAR( 300 ) NULL ,
  12. PRIMARY KEY ( `id` ) ,
  13. nombre,
  14. email
  15. )
  16. ) ENGINE = MYISAM DEFAULT CHARSET = latin1

Cita:
MySQL ha dicho: Documentación
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'UNSIGNED INT NOT NULL AUTO_INCREMENT,
`nombre` VARCHAR(100)NULL,
' at line 2
[/CODE]
  #8 (permalink)  
Antiguo 17/01/2014, 12: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: 17 años
Puntos: 2658
Respuesta: Fulltext ????

Código sql:
Ver original
  1. INT UNSIGNED

No hagas Copy+Paste. Lee el manual, por favor.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #9 (permalink)  
Antiguo 17/01/2014, 12:48
Avatar de leonaryoel  
Fecha de Ingreso: octubre-2013
Ubicación: Villa Clara
Mensajes: 64
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: Fulltext ????

Ok ok bien solucionado, el problema era el UNSIGNEDINT, una pregunta más. si tengo ya la tabla creada de otra manera como puedo cambiarla para MyISAM y hacer TEXTFULL algunos campos? Porque me imagino que no haga falta borrarla para hacerla de nuevo no?
  #10 (permalink)  
Antiguo 17/01/2014, 13:06
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 8 meses
Puntos: 300
Respuesta: Fulltext ????

Código MySQL:
Ver original
  1. ALTER TABLE nombre_tabla ENGINE=MyISAM;
Y luego sigue los pasos para añadir el índice FULLTEXT
Código MySQL:
Ver original
  1. ALTER TABLE nombre_tabla ADD FULLTEXT (campo1, campo2)
  #11 (permalink)  
Antiguo 17/01/2014, 13:34
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Fulltext ????

Y no te olvides que al pasar de InnoDB a MyISAM se pierden todas las referencias de FK, con lo que la integridad referencial la deberás mantener a través de validaciones contra la base.
__________________
¿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: campo, fulltext, sql, 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 20:29.