为了账号安全,请及时绑定邮箱和手机立即绑定

为什么cate的多表更新之一步到位就不成功!

root@localhost test>>CREATE TABLE tdb_goods_cates(
    -> cate_id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
    -> cate_name VARCHAR(40) NOT NULL
    -> )
    -> SELECT goods_cate FROM tdb_goods GROUP BY goods_cate;
ERROR 1364 (HY000): Field 'cate_name' doesn't have a default value

正在回答

2 回答

百度一番:大概是因为mysql5.7以后的版本启用了严格模式,照着方法修改配置文件my.ini也依然不起作用。我的解决方法如下:

我的是mysql8.0版本,以品牌表为例

  1. 将brand字段的not null约束去掉,虽然可以正确添加数据

    http://img1.sycdn.imooc.com//5ef2c0d5000143b305150100.jpg

    但结果却是:

    http://img1.sycdn.imooc.com//5ef2c06e0001150002450226.jpg

    后期可以将brand字段删除,也能达到效果

  2. 既然Select中的字段会自动填充到新表中,不妨在创建表时只创建id字段:

    http://img1.sycdn.imooc.com//5ef2c0fe0001b8f505310083.jpg

    结果:

    http://img1.sycdn.imooc.com//5ef2c135000161d302510255.jpg

0 回复 有任何疑惑可以回复我~

)后面要有一个;,必须两步才能行

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
与MySQL的零距离接触
  • 参与学习       396886    人
  • 解答问题       3353    个

本课程涵盖全部MySQL数据库的基础,学习MySQL数据库的基础知识

进入课程

为什么cate的多表更新之一步到位就不成功!

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信