问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

Field ID'doesn't have a default value,到底是什么原因

发布网友 发布时间:2022-04-10 22:47

我来回答

2个回答

热心网友 时间:2022-04-11 00:17

具体原因:

(1)在mysql5.0.2以前,mysql对非法值检查并不严厉,而且为了数据输入还会强制将他们变为合法值。

(2)在5.0.2以后的版本中,保留了以前的默认行为,但你可以为不良值选择更传统的处理方法,从而使得服务器能够拒绝并放弃出现不良值的语句。

解决方法:

(1)项目使用django+mysql;

(2)在linux中使用的是mysql5.7,导入数据提示:Field * doesn't have a default value;

(3)想要解决问题就需要知道在mysql5.7中,启用了严格模式:

在配置文件中 /etc/mysql/my.cnf 中找到:

sqlmodel=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION修改为:sql-mode=NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION;

(4)重启mysql,在重新同步模型到数据库。

    mysql 默认行为和新的严格sql模式和区别:

    如果未使用严格模式,下面的情况是合法的。如果将不正确的值插入到列,如将null值插入非null列,或将过大的数据插入数值列,mysql 会将这些列设置为最可能的值,而不是抛出错误信息。

    如果视图将超过范围的值保存到数值列,mysql服务器将保存0(最小的可能值)取而代之,或最大的可能值。

    对于字符串,mysql 或保存空字符串,或将字符串可能多的部分保存到列中。

    如果打算将不是以数值开头的字符串保存到数值列,mysql将保存0。

    mysql允许将特定的不正确日期值保存到DATE和DATETIME列(如:“2000-02-31” 或 “2000-02-00”)。其观点在于,验证日期不是sql服务器你的值。如果mysql能保存日期值并且准确检索相同的值,mysql就能按给定的值保存它。如果日期错误(超出服务器能保存的范围)将在列中保存特殊的日期值“0000-00-00”取而代之。

    如果视图将null值保存到不接受null值的列,对于单行insert语句,将出现错误。对于多行insert语句或者insert into...select语句,mysql服务器会保存针对列数据类型的隐含默认值。一般情况下,对于数值类型,它是0,对于字符串类型,它是空字符串(‘’),对于日期和时间类型是“zero”。

    如果insert语句未为列指定值,如果列定义包含明确的default子句,mysql将插入默认值。如果在定义中没有这类default子句,mysql 会插入列数据类型的隐含默认值。

    采用前描述规则的原因在于,在语句开始执行前,无法检查这些情况。如果在更新了舒航后遇到这类问题,我们不能仅靠回滚解决,这是因为存储引擎可能不支持回滚。种植语句并不是良好的选择,在该情况下,更新完成了“一半”,这或许是最差的情况。对于本例,较好的方式是“尽可能做到最好”,就像什么都没有发生那样继续执行。

    热心网友 时间:2022-04-11 01:35

    Field 'id' doesn't have a default value昨晚做项目的时候遇到一个问题,在测试数据存储的时候老是报Field 'id' doesn't have a default value异常,从网上找了好久,根据各位大虾的说法也测试了好久好久,可就是没发现原因所在,鼓捣了两三个小时的时间,最后总算找到问题所在:原来是我的数据设计的时候,把主键的类型定义为int的,原本想是用自增的方式来的,可是由于自己的粗心,写sql语句的时候没有加上auto_increment,所以在数据存储的时候老是报Field 'id' doesn't have a default value,id根本就没有值啊!!
    加上自己从网上找的其他人说的他们遇到这种时候的原因,在这里总结一下:
    1、打开my.ini,查找
    sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

    修改为
    sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

    然后重启MYSQL
    2、MySQL 5 uses a strict mode which needs to be disabled.
    In Windows, Goto Start-->Programs-->MySQL->MySQL Instance Config Wizard. Follow through the Reconfigure Instance option-->Detailed Configuration-->Continue Next a few screens. At the bottom under Enable TCP/IP option there is 'Enable Strict Mode'. Deslect this option (no tick). Save changes and MySQL will restart.

    3、看看你的数据库定义的时候是不是把主键生成方式设置为int的,但是没有设置为自增的!!或者数据定义的时候设置一个默认值就可以了。
    声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
    E-MAIL:11247931@qq.com
    vista和win7区别 dsp芯片需要编程吗 PLD及单片机具体指什么,PLD技术学习什么? 路由器一直亮红灯没网 DATALAND迪兰RX 590 GME 8G X战神 PLUS显卡-适用对象 DATALAND迪兰RX 590 GME 8G X战神 PLUS显卡-详细介绍 DATALAND迪兰RX 590 8G X战神PLUS显卡-适用对象 DATALAND迪兰RX 590 8G X战神 PLUS显卡-8GB GDDR5显存-高效散热设计... DATALAND 迪兰 RX 590 8G 显卡 DATALAND迪兰RX 590 GME 8G X战神 PLUS显卡-购买最佳价格 武汉公交卡是否已经换成武汉一卡通了? 关于武汉公交的一卡通 投资基金管理公司股权投资方案 股权投资管理如何设计股权激励方案? 有谁知道微信聊天记录迁移到另一个手机里生成的二维码怎么扫描? 公租房五年后可以买吗 你认为ZZKKO的商业模式到底是怎样的? 100元人民币尾数是三个号码一样值钱吗 以“金木水火土”五个字分别命名五个人的名字,其中要求水、火是女性,其余三个是男性(不要用《坏蛋》上 赵伊瑾八字土水金金金木水土取的名字如何 尾数4连号的人民币有收藏价值么 名字的在五行里的属性是水金木,侯思颖他们相克吗? 人民币尾数是连号值钱 举报麻将群奖怎么给到我? 请问我的word2010 换行就出现 横线 怎么也去不掉了,求大神指导。555~~如图 人民币尾数几个连号有价但? 取名字五行为水金木的名字可以吗?看了资料说是金克木,这个顺序为水金木可以吗。 15年8张100元最后尾数连尾号值钱吗 钞票中间数连号和尾数连号有没有收藏价值。 尾数是连号的几张人民币值得收藏吗? 抖音李狗蛋真名叫什么 关于快乐男生苏醒的资料 有没有看到过很霸气的名字? http://a.uushe.com/mhxx/index1.html?a=30579&b=8497&c=73&st=1189 求这个连接上 两个男性的一部剧,凭什么成为今年最大黑马? 下班时间,没帮同事忙就对我态度不好,第一次遇到这情况怎么回怼显的情商高? 比较好的电影网站? 求高手把影视转成音乐,这是地址:http://www.tudou.com/programs/view/6kR_t7tzSuU/ 跪求 宛若天堂 百度云免费在线观看资源 语文S版四年级上册《树叶都是绿色的吗》课件 windows7旗舰版主题 生理期可以练习瑜伽吗 已结婚多年但是经常梦见自己是单身找不到愿意和自己结婚的对象是什么意思 梦见领结婚证找不到老公 天津星光灿烂KTV在哪?2-4个人小包就够了吧?!每小时多少钱? 天津星光灿烂KTV(红桥店)电话是多少? 贵阳都有哪些KTV?价格等大概的情况如何? 天津河西的星光灿烂ktv各时段价格是多少? 章丘KTV 无限流量卡怎么用?是省内流量还是国内流量?
    • 焦点

    最新推荐

    猜你喜欢

    热门推荐