字段值大小写设置
...小于 1 分钟MySQL
一、忽略大小写
1、表未创建
CREATE TABLE user (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) COLLATE utf8_general_ci NOT NULL
);
2、表已创建
ALTER TABLE user MODIFY COLUMN name VARCHAR(255) COLLATE utf8_general_ci NOT NULL;
可以使用以下命令检查当前表和列的排序规则:
SHOW FULL COLUMNS FROM user;
注意
如果 name 字段是主键或具有唯一性约束,在不区分大小写的排序规则下,插入大小写不同但值相同的数据会违反唯一性约束。例如,插入 Kname 后,插入 kname 会导致重复键错误。
二、区分大小写
1、表未创建
-- 创建一个新的表,其中name字段使用utf8_bin排序规则
CREATE TABLE user (
name VARCHAR(255) COLLATE utf8_bin NOT NULL,
PRIMARY KEY (name)
);
-- 插入区分大小写的值
INSERT INTO user (name) VALUES ('Kname');
INSERT INTO user (name) VALUES ('kname');
-- 验证插入结果
SELECT * FROM user;
2、表已创建
-- 修改现有表中的name字段,使其使用utf8_bin排序规则
ALTER TABLE user MODIFY COLUMN name VARCHAR(255) COLLATE utf8_bin NOT NULL;
-- 插入区分大小写的值
INSERT INTO user (name) VALUES ('Kname');
INSERT INTO user (name) VALUES ('kname');
-- 验证插入结果
SELECT * FROM user;
Powered by Waline v3.2.0