我有一个奇怪的情况,一个字段不允许NULL值.如果我插入一行,该字段默认为空字符串,即使mysql声称默认值为NULL.

mysql> describe user;

+---------------------------+------------------+------+-----+---------+----------------+

| Field | Type | Null | Key | Default | Extra |

+---------------------------+------------------+------+-----+---------+----------------+

| id | int(30) | NO | PRI | NULL | auto_increment |

| username | varchar(45) | NO | UNI | NULL | |

| city | varchar(45) | NO | | NULL | |

+---------------------------+------------------+------+-----+---------+----------------+

mysql> show triggers;

Empty set (0.00 sec)

mysql> insert into user (username) values ('just_testing');

Query OK, 1 row affected, 17 warnings (0.01 sec)

这是我去哪里的地方?! – city应该默认为NULL,这是不允许的,但请看这里:

mysql> select username, city from user where username = 'just_testing' and city is null;

Empty set (0.00 sec)

mysql> select username, city from user where username = 'just_testing' and city='';

+--------------+------+

| username | city |

+--------------+------+

| just_testing | |

+--------------+------+

1 row in set (0.00 sec)

Mysql决定使用空字符串作为默认值,即使它不是这样,并且没有任何触发器.

并进一步:

mysql> insert into user (username, city) values ('just_testing3', NULL);

ERROR 1048 (23000): Column 'city' cannot be null

我在俯瞰什么?城市列如何默认为”?

解决方法:

If you are not running in strict SQL mode, any column not explicitly given a value is set to its default (explicit or implicit) value. For example, if you specify a column list that does not name all the columns in the table, unnamed columns are set to their default values. Default value assignment is described in Section 11.6, “Data Type Default Values”. See also Section 1.8.3.3, “Constraints on Invalid Data”.

For string types other than ENUM, the default value is the empty string. For ENUM, the default is the first enumeration value.

标签:mysql,sql

来源: https://codeday.me/bug/20190528/1169952.html

mysql设置字段为空字符串_NULL默认为mysql中的空字符串?相关推荐

  1. MySQL设置字段从指定数字自增,比如10000

    MySQL设置字段从指定数字自增,比如10000. 方式一 方式二 方式一 此时就解决了MySQL从指定数字进行自增 CREATE TABLE hyxxb(hyid INT AUTO_INCREMEN ...

  2. mysql设置字段区分大小写

    mysql设置字段区分大小写 alter table t_entrust_direction modify c_entrust_direction varchar(4) binary;//加上bina ...

  3. mysql设置字段为空字符串_mysql数据类型字段插入空字符串自动填充为0报错

    有一条这样的sql语句, insert into a(id,user_name) values('','abc'); 表示插入字段的时候ID插入是空字符串.这样的情况在mysql5.6版本上执行报错. ...

  4. mysql设置字段默认为男_Mysql字符集设置

    最近,在项目组使用的mysql数据库中,插入数据出现乱码,关于这个问题做了下总结,我们从最基本的地方说起,到错误产生的深层次原因和解决办法. 基本概念 • 字符(Character)是指人类语言中最小 ...

  5. mysql 设置中文 重启_如何启动/停止/重启MySQL + 进入MYSQL-Go语言中文社区

    Ubuntu 如何启动/停止/重启MySQL 一. 启动方式 1.使用 service 启动:service mysql start 2.使用 mysqld 脚本启动:/etc/inint.d/mys ...

  6. java中转json字符串_如何在Java中转义JSON字符串-Eclipse IDE技巧

    java中转json字符串 在Java应用程序中工作或进行JSON解析时,通常很常见的做法是从某些资源(例如RESTful Web服务)中复制粘贴JSON字符串,然后使用Jackson库解析JSON. ...

  7. java文件中查找字符串_Java 在本地文件中查找固定字符串

    适用范围:只适用于在文本文档中查找(如,txt.java.c等等,并不适用与doc.xls等等这些文件),可嵌套文件夹.但是对中文不支持. 例如:文件夹:F:/demo 子文件夹:F:/demo/er ...

  8. python字符串find函数实现_python中实现查找字符串的find函数

    原博文 2018-06-19 19:26 − 第五题:自己实现一个字符串的find函数1.在一个字符串中查找另一个字符串2.找到了返回第一次出现的位置3.没找到返回-14.参数s1为源字符串,参数s2 ...

  9. c语言 字符串字符反向储存_C ++中的反向字符串

    c语言 字符串字符反向储存 In many situations, we may need to reverse a string in C++ programming. It may include ...

最新文章

  1. Struts1.x系列教程(4):标签库概述与安装
  2. Node中require方法的简单实现
  3. java vector内存结构_Java 数据结构
  4. 【码云周刊第 24 期】超实用 Andorid 开发实例
  5. python中那纠结的os.system()与空格处理
  6. azure git怎么使用_Azure(一)Azure Traffic Manager为我们的Web项目提供负载均衡
  7. 详解string容器(应用+模拟实现,string练习题)
  8. linux定时执行一个脚本
  9. [转贴]JAVA:RESTLET开发实例(三)基于spring的REST服务
  10. 杭州师范大学计算机与科学,杭州师范大学信息科学与工程学院
  11. 【转】如何打包发布基于Qt4 Windows的软件
  12. 中国酸性蒸汽清洗系统市场趋势报告、技术动态创新及市场预测
  13. 时间变为.05PU sql长度写法
  14. JAVA练手--数组
  15. 二叉树遍历算法的应用
  16. 读书笔记:调试软件 张银奎
  17. U盘中了磁碟机病毒怎么办
  18. android pc投屏,安卓投屏助手pc版
  19. K米在线超市实施步骤及检查列表
  20. html框架之间空隙,Span之间空隙原因和解决办法

热门文章

  1. javascript 中冒号(:)意思?
  2. (html按钮禁用与启用)===(html按钮禁用与允许)
  3. 分享一个可以截长截图的工具
  4. 网络字节序和主机字节序详解
  5. 山东专升本计算机基础知识(三)
  6. vue 微信(企业微信)获取openId
  7. 可用性测试:A/B测试的实现方法
  8. oem客户工程流程图_OEM客户返修品处理流程图
  9. 如何要求企业邮箱收件人发送已读回执?
  10. 射频芯片基础知识科普