mysql数据类型字段插⼊空字符串⾃动填充为0报错
有⼀条这样的sql语句,
insert into a(id,user_name) values('','abc');
表⽰插⼊字段的时候ID插⼊是空字符串。这样的情况在mysql5.6版本上执⾏报错。在mysql5.1版本执⾏可以成功,
mysql的⽼版本可以⽀持数据类型空值,5.2以后的估计是不⾏了。
为什么不写空字符串不能写null?
这是因为mysql受到了字段类型的约束,设置为not null 了
NULL 和 NOT NULL 修饰符:
可以在每个字段后⾯都加上这NULL 或 NOT NULL 修饰符来指定该字段是否可以为空(NULL),还是说必须填上数据(NOT NULL)。MySQL默认情况下指定字段为NULL修饰符,如果⼀个字段指定为NOT NULL,MySQL则不允许向该字段插⼊空值(这⾥⾯说的空值都为NULL),因为这是“规定”。
java正则表达式主要包括
not null 表⽰这个字段不能为空adjust的用法和短语
虽然看起来他是⼈为设置的但是他和业务逻辑或者数据结构有关系
⽐如你要对这条记录进⾏读取⽽这个是很重要的属性那么你不仅要让其不为空还要让他是指定的格式或者数值
还有情况就是这个字段恰是其他表的主键那么只有他有值才能正确关联两张表所以他必须有值
所以没办法程序员只好改了程序,把这个字段给去掉了。。。-_-_-多表查询sql语句怎么查
二进制计算器在线使用计算这种问题⼀般mysql 5.x上出现。我⽤的mysql5.2.28,后⾯查询得知新版本mysql对空值会报错,要在安装mysql的时候去除默认勾选的enable strict SQL mode。如果已经安装好了的,就在my.ini中查sql-mode,默认为sql-
mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION",将其修改为sql-
mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION",重启mysql后即可。
第⼀时间的反应是跟mysql5.0新加的sql-mode有关系,因为前⼀阵⼦刚刚看过⼿册.果然,作了如下更改后就不再提⽰了.
mysql语句分类修改 my.ini ⽂件.
# Set the SQL mode to strict
sql-mode=”STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION”
改为:
# Set the SQL mode to strict
sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
new函数
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论