收到一只叮咚

mysql数据库默认对varchar的字段的值不就是空('')么,对数值默认是0,那还需要设置默认值的必要性何在?疑问的原因是没启用MySQL的严格模式(strictmode),很多快捷开发环境自带的MySQL(PHPnowWAMPAppserv等),都没有启用严格模式,甚至是在一些产品环境(productionenvironment)都忽略了这点。非严格模式下,MySQL会容忍许多开发上的疏忽,例如把一个长度100的字符串插入到varcaht中只会截断多余的部分而不报错。严格模式对数据的格式、长度、类型等进行校验,你贴出的建表语句中指定了DEFAULT,如果此时不指定DEFAULT,在你认为会启用默认值的时候会返回#1364错误。开发阶段最好启用严格模式,这是对我们代码严谨性的测试,严进宽出也能保证转移到产品环境和后续的数据库迁移、重构顺利。为什么数据库要设置默认值呢?因为我们希望在插入数据时,有意或无意间被忽略的字段能够交由MySQL按你事先预想的方式处理,例如一些默认正常状态码、用户插入数据时候尚未设置的文本字段,诸如此类。我的习惯是任何数据表的任何列都是非空(NOTNULL),在此基础上将数字默认设为0,文本默认设为''(在PHPMyAdmin中留空)。这里涉及一个NULL和''的区别,对此我所知尚少,我使用''的原因是根据语义NULL表示“此字段值为空”,而''表示“此字段暂未设置值”。另一个原因是在MyISAM引擎下,NULL对索引、索引统计、磁盘占用都会有额外的开销,一个允许为NULL的列,每个字段的长度都比NOTNULL的多1bit,我不确定最近几年是否有所改善,涉及到NULL的资料大概是在MySQL5.0时看过的。防止误人,有失偏颇请直接修改我的答案,谢谢。

mysql数据库字段默认值设为什么_为什么数据库字段需要设置默认值相关推荐

  1. linux设置默认终端模拟器,ubuntu终端默认设置_在Ubuntu Linux上设置默认终端模拟器...

    ubuntu终端默认设置_在Ubuntu Linux上设置默认终端模拟器 ubuntu终端默认设置_在Ubuntu Linux上设置默认终端模拟器 ubuntu终端默认设置 Ubuntu has a ...

  2. p值 统计学意义_统计学意义不重要为什么p值不应过高

    p值 统计学意义 Have you ever heard somebody say that a study revealed „significant results"? What doe ...

  3. mysql默认密码是多少_路由器192.168.1.1默认登录密码是多少?

    打开路由器管理地址192.168.1.1弹出输入框需要输入密码,这个密码是多少呢?不同的路由器有着不同的默认密码. 关于192.168.1.1路由器密码: 1.首先,192.168.1.1登录口的默认 ...

  4. java设置默认参数_关于java:如何设置默认方法参数值?

    本问题已经有最佳答案,请猛点这里访问. 是否可以在Java中设置默认的方法参数值? 例子:如果有方法 public int doSomething(int arg1, int arg2) { //so ...

  5. html下拉列表初始值为空,html 里select 下拉列表中设置默认值怎么写?

    设置下拉列表框的默认值:使用关键字selected < select name = "pronvince"> < option value ="SH&q ...

  6. 8bit黑白图像的灰度值范围是_浅谈工业CT图像灰度值

    工业CT使用的X射线检测作为无损检测的主要方法之一,与其他方法相比具有直观.准确等优点.射线检测中垂直于射线透照方向的缺陷尺寸可精确测量,但平行于射线透照方向的缺陷尺寸无法直接测量得到,而未焊透.根部 ...

  7. md5值最大长度_豆长老之比特币-哈希值是什么11月16日分享篇

    哈希值,或哈希散列(Hash),又称为哈希算法 是密码学里的经典技术,它是一种单向密码体制,是从明文到密码的不可逆过程,即只有加密没有解密过程.哈希算法将任意长度的二进制值映射为较短的固定长度的二进制 ...

  8. word设置默认字体_如何在Word中设置默认字体

    word设置默认字体 Word is a powerful application, but some of the configuration tools are not very intuitiv ...

  9. android 双卡 默认流量 卡,双卡双待功能怎么用?如何设置默认流量卡?

    原标题:双卡双待功能怎么用?如何设置默认流量卡? 了解双 SIM 卡状态图标 屏幕顶部状态栏中的图标能够显示两个运营商的信号强度,在「控制中心」可以显示更详细的 SIM 卡状态. 设置默认号码 将「主 ...

最新文章

  1. Jenkins安装plugin
  2. arraylist 初始化_第一章 C#数据结构--数组和ArrayList
  3. Java黄金五年——1~5年一个Java程序员从入行到大牛的晋升之路
  4. Android之在在EditText的xml里面配置了相关属性依然没有显示光标问题
  5. 怎么形容智能冰激凌机器人_有关于形容描写冰激凌的句子及图片
  6. JavaSE语法基础
  7. 十一假期朋友圈鄙视链,你在第几层?
  8. [ubuntu] ubuntu20.04 卸载 firefox 下载 chrome
  9. python习题练习(chapater 5 -- python核心编程)
  10. org.apache.commons.lang.text.StrLookup缺失
  11. unix下ODBC连接MySQL编程_通过unixODBC访问PostgreSQL数据库
  12. UltraEdit注册机
  13. 《缠中说禅108课》60:图解分析示范五
  14. 软件测试黑马程序员课后答案_(完整版)软件测试技术基础课后习题答案
  15. 通俗解释什么是指令集
  16. 用python的requests第三方模块抓取王者荣耀所有英雄的皮肤
  17. 学生请假管理系统(需求说明+项目(部分代码))
  18. 黑白照片一键变成彩色照片,怎么做?快来看看!
  19. 安装nodejs时提示Leaving directory
  20. 微信公众号删除cookie失败,cookie设置了过期时间不管用,微信公众号cookie比较诡异,删不掉,解决办法,原生JS封装cookie统一操作删除cookie,读取cookie,删除cookie

热门文章

  1. nodecu8266 lua应用(三)----模块基础
  2. 工具推荐丨最适合程序员的六款好用 IDE 工具,赶紧收藏吧!
  3. windows FTP自动下载脚本
  4. vue实现记住账号密码
  5. Vue2.6+VueCli4.3+CubeUI 完成小D课堂移动端
  6. vue移动端滴滴cubeui和postcss-pxtorem插件的rem混合使用,不影响UI的px
  7. 广电优点家庭服务器怎么无线桥接,无线桥接与有线桥接各自的优缺点?
  8. 有识别水果的软件吗?快把这些软件收好
  9. PyQt5项目:抠图
  10. 机器学习:数据降维(特征选择和主成分分析)