tablas sensibilidad primera nombres minúsculas minusculas mayúsculas mayusculas mayuscula lower_case_table_names los letra las ignorar identificar diferenciar buscar mysql

sensibilidad - Alterar la columna de la tabla Mysql para que sea sensible a mayúsculas



mysql sensibilidad a mayúsculas minúsculas de los nombres de las tablas (4)

Tengo una tabla en mi base de datos Mysql, que se utiliza para la autenticación. Y ahora, necesito hacer que la autenticación sea sensible al caso. Buscando en Google, me he dado cuenta de que las columnas Mysql no distinguen entre mayúsculas y minúsculas (a diferencia de Oracle) para las operaciones de búsqueda y el comportamiento predeterminado se puede cambiar al crear la tabla especificando el "binario", es decir.

CREATE TABLE USERS ( USER_ID SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT, USER_NAME VARCHAR(50) BINARY NOT NULL )

¿Puede alguien decirme cómo modificar la tabla en Mysql para agregar el "Binario" a una columna existente de una base de datos?

¡Gracias!


Consulte http://dev.mysql.com/doc/refman/5.0/en/charset-conversion.html

Ejemplo:

ALTER TABLE some_table MODIFY some_column BLOB; ALTER TABLE some_table MODIFY some_column VARCHAR(50) BINARY;

La primera línea se convierte en un tipo de datos binarios (intento de minimizar la pérdida de caracteres) y la segunda se convierte de nuevo al tipo VARCHAR con intercalación BINARY .

En realidad, puede ser preferible almacenar como uno de los tipos binarios ( BLOB , BINARY o VARBINARY ) en lugar de simplemente cotejar BINARY . Le sugiero que compare un poco, su millaje puede variar según sus datos reales y las consultas que necesite para ejecutar.


Deberías poder hacer algo como esto:

Edición: leer mal lo que pretendías hacer:

ALTER TABLE USERS MODIFY USER_NAME VARCHAR(50) CHARACTER SET latin1 COLLATE latin1_bin;


En lugar de alterar su tabla, aún puede realizar consultas que distingan entre mayúsculas y minúsculas en su tabla al autenticar, use la opción BINARIA de la siguiente manera:

SELECT BINARY * FROM USERS where USER_ID = 2 AND USER_NAME = ''someone'' LIMIT 1;

¿Esto ayuda?


ALTER TABLE USERS CHANGE USER_NAME USER_NAME VARCHAR(50) BINARY NOT NULL;