我的Mysql数据库中有一个表,用于身份验证.现在,我需要使身份验证案例敏感.谷歌搜索,我已经意识到Mysql列对于搜索操作不区分大小写(与Oracle相反),并且通过指定"二进制"即可以在创建表时更改默认行为.
CREATE TABLE USERS
(
USER_ID SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,
USER_NAME VARCHAR(50) BINARY NOT NULL
)
Run Code Online (Sandbox Code Playgroud)
有人可以告诉我如何更改Mysql中的表以将"二进制"添加到数据库的现有列?
谢谢!
dei*_*nst 33
ALTER TABLE USERS CHANGE USER_NAME USER_NAME VARCHAR(50) BINARY NOT NULL;
Run Code Online (Sandbox Code Playgroud)
请参阅http://dev.mysql.com/doc/refman/5.0/en/charset-conversion.html
例:
ALTER TABLE some_table MODIFY some_column BLOB;
ALTER TABLE some_table MODIFY some_column VARCHAR(50) BINARY;
Run Code Online (Sandbox Code Playgroud)
第一行转换为二进制数据类型(尝试最小化字符丢失),第二行转换回VARCHAR具有BINARY排序规则的类型.
它实际上可能是优选的以存储为二进制类型之一(BLOB,BINARY,或VARBINARY),而不是简单地核对BINARY.我建议你稍微比较,你的里程可能会有所不同,具体取决于你的实际数据和你需要运行的查询.
你应该能够做这样的事情:
编辑:误读你打算做什么:
ALTER TABLE USERS MODIFY
USER_NAME VARCHAR(50)
CHARACTER SET binary;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
25610 次 |
| 最近记录: |