我在MySQL中有一个名为Person的表。有一个名为username
的列。我想使用以下内容将NOT NULL
约束添加到此列:
ALTER TABLE Person MODIFY username VARCHAR(32) NOT NULL;
但它失败并报告错误:
Error Code: 1265. Data truncated for column 'username' at row 1
为什么我不能将此列更改为NOT NULL?
答案 0 :(得分:9)
您表中存储的用户名是否已经有NULL值?然后,当您在表格中创建不一致时,您会收到错误。
答案 1 :(得分:1)
错误意味着您将列长度缩小。从未知值到32个字符。第一行在username
列中包含超过32个字符。如果以这种方式更改表,那将导致数据丢失。
您可以使用此查询找到username
个超过32个字符的记录
select * from person
where length(username) > 32