米兰的小铁匠z
2020-01-11 18:57
采纳率: 50%
浏览 849
已采纳

MySQL初学者报出1265错误代码求助大神


SELECT DATABASE();

CREATE TABLE employe(id INT ,NAME VARCHAR(20) NOT NULL); #在创建表的时候就进行约束

SELECT *FROM employe;

INSERT INTO employe(id,NAME)VALUE(33,NULL); 

INSERT INTO employe(id,NAME)VALUE(33,"liuzeyu");

ALTER TABLE employe MODIFY NAME VARCHAR(20) ; #修改为name值可为null


ALTER TABLE employe MODIFY NAME VARCHAR(20) NOT NULL; #创建表之后修改为name值可为not null

此时会出现一个错误:

在这里插入图片描述

这个问题待解决请指教。

最后是通过度娘解决了这个问题:


UPDATE employe SET NAME=0 WHERE NAME IS NULL;

然后就可以创建表之后修改为name值可为not null,至于为什么将空值替换成0作为初学者表示没看懂。

而且我操作完这一条语句后,创建其它的表执行类似上述的操作再也没遇到1265错误代码了,为什么呢?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • 德玛洗牙 2020-01-13 09:17
    已采纳

    你这是先创建表的时候name是可以为空,然后将带null的纪录插入后,再将表的name修改为不为空出的错吧。表里有null值而你又要讲该列设置为不能为null,冲突了所有就报错

    点赞 打赏 评论
  • 点赞 打赏 评论

相关推荐 更多相似问题