mysql数据库字段默认值设为什么_为什么数据库字段需要设置默认值
收到一只叮咚
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数据库字段默认值设为什么_为什么数据库字段需要设置默认值相关推荐
- linux设置默认终端模拟器,ubuntu终端默认设置_在Ubuntu Linux上设置默认终端模拟器...
ubuntu终端默认设置_在Ubuntu Linux上设置默认终端模拟器 ubuntu终端默认设置_在Ubuntu Linux上设置默认终端模拟器 ubuntu终端默认设置 Ubuntu has a ...
- p值 统计学意义_统计学意义不重要为什么p值不应过高
p值 统计学意义 Have you ever heard somebody say that a study revealed „significant results"? What doe ...
- mysql默认密码是多少_路由器192.168.1.1默认登录密码是多少?
打开路由器管理地址192.168.1.1弹出输入框需要输入密码,这个密码是多少呢?不同的路由器有着不同的默认密码. 关于192.168.1.1路由器密码: 1.首先,192.168.1.1登录口的默认 ...
- java设置默认参数_关于java:如何设置默认方法参数值?
本问题已经有最佳答案,请猛点这里访问. 是否可以在Java中设置默认的方法参数值? 例子:如果有方法 public int doSomething(int arg1, int arg2) { //so ...
- html下拉列表初始值为空,html 里select 下拉列表中设置默认值怎么写?
设置下拉列表框的默认值:使用关键字selected < select name = "pronvince"> < option value ="SH&q ...
- 8bit黑白图像的灰度值范围是_浅谈工业CT图像灰度值
工业CT使用的X射线检测作为无损检测的主要方法之一,与其他方法相比具有直观.准确等优点.射线检测中垂直于射线透照方向的缺陷尺寸可精确测量,但平行于射线透照方向的缺陷尺寸无法直接测量得到,而未焊透.根部 ...
- md5值最大长度_豆长老之比特币-哈希值是什么11月16日分享篇
哈希值,或哈希散列(Hash),又称为哈希算法 是密码学里的经典技术,它是一种单向密码体制,是从明文到密码的不可逆过程,即只有加密没有解密过程.哈希算法将任意长度的二进制值映射为较短的固定长度的二进制 ...
- word设置默认字体_如何在Word中设置默认字体
word设置默认字体 Word is a powerful application, but some of the configuration tools are not very intuitiv ...
- android 双卡 默认流量 卡,双卡双待功能怎么用?如何设置默认流量卡?
原标题:双卡双待功能怎么用?如何设置默认流量卡? 了解双 SIM 卡状态图标 屏幕顶部状态栏中的图标能够显示两个运营商的信号强度,在「控制中心」可以显示更详细的 SIM 卡状态. 设置默认号码 将「主 ...
最新文章
- Jenkins安装plugin
- arraylist 初始化_第一章 C#数据结构--数组和ArrayList
- Java黄金五年——1~5年一个Java程序员从入行到大牛的晋升之路
- Android之在在EditText的xml里面配置了相关属性依然没有显示光标问题
- 怎么形容智能冰激凌机器人_有关于形容描写冰激凌的句子及图片
- JavaSE语法基础
- 十一假期朋友圈鄙视链,你在第几层?
- [ubuntu] ubuntu20.04 卸载 firefox 下载 chrome
- python习题练习(chapater 5 -- python核心编程)
- org.apache.commons.lang.text.StrLookup缺失
- unix下ODBC连接MySQL编程_通过unixODBC访问PostgreSQL数据库
- UltraEdit注册机
- 《缠中说禅108课》60:图解分析示范五
- 软件测试黑马程序员课后答案_(完整版)软件测试技术基础课后习题答案
- 通俗解释什么是指令集
- 用python的requests第三方模块抓取王者荣耀所有英雄的皮肤
- 学生请假管理系统(需求说明+项目(部分代码))
- 黑白照片一键变成彩色照片,怎么做?快来看看!
- 安装nodejs时提示Leaving directory
- 微信公众号删除cookie失败,cookie设置了过期时间不管用,微信公众号cookie比较诡异,删不掉,解决办法,原生JS封装cookie统一操作删除cookie,读取cookie,删除cookie
热门文章
- nodecu8266 lua应用(三)----模块基础
- 工具推荐丨最适合程序员的六款好用 IDE 工具,赶紧收藏吧!
- windows FTP自动下载脚本
- vue实现记住账号密码
- Vue2.6+VueCli4.3+CubeUI 完成小D课堂移动端
- vue移动端滴滴cubeui和postcss-pxtorem插件的rem混合使用,不影响UI的px
- 广电优点家庭服务器怎么无线桥接,无线桥接与有线桥接各自的优缺点?
- 有识别水果的软件吗?快把这些软件收好
- PyQt5项目:抠图
- 机器学习:数据降维(特征选择和主成分分析)