无法添加NOT NULL约束

时间:2013-06-23 00:56:08

标签: mysql

我在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?

2 个答案:

答案 0 :(得分:9)

您表中存储的用户名是否已经有NULL值?然后,当您在表格中创建不一致时,您会收到错误。

答案 1 :(得分:1)

错误意味着您将列长度缩小。从未知值到32个字符。第一行在username列中包含超过32个字符。如果以这种方式更改表,那将导致数据丢失。

您可以使用此查询找到username个超过32个字符的记录

select * from person
where length(username) > 32