mysql 插入默认值的问题 sql-mode

刚好碰到如果不给默认值mysql数据就插入不成功的问题,后来百度了很多,试了下结果

把my.ini里面的[mysqld]的sql-mode 换成下面的一行,如果没有则添加

sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

时间: 2024-10-11 03:24:07

mysql 插入默认值的问题 sql-mode的相关文章

添加数据时如何向表中插入默认值?

建了一个表,建表SQL语句如下:CREATE TABLE `myuser` (  `uid` int(11) unsigned NOT NULL auto_increment,  `username` varchar(250) NULL default '王兵',  `photo` varchar(250) NULL default '32423342',  PRIMARY KEY  (`uid`),) ENGINE=InnoDB DEFAULT CHARSET=gbk; username和ph

mysql字段默认值不生效的问题解决(上)

在项目中使用mybatis做为持久层框架,mysql数据库.项目上线前,DBA要求我们将每张数据库表中的字段都设置默认值和not null.之前项目中有一些insert语句是将表中所有字段都列出来,然后把它做为一个通用的插入语句来使用.举个简单的例子:假如一张数据库表blog中有如下几个字段:id,title,content,author,除id外,每个字段都设置了默认值Empty String(空字符串),写的一个insert语句是这样的: Java代码   <insert id="ad

4.02 插入默认值

问题: 定义表时可以为某些列定义默认值,现要以默认值插入一行,而无需指定各列的值.看一下下面列出的表: create table D (id interger default 0) 要插入零值,而不像在insert语句的值列表中明确得为该行指定0值,这里明确的要求插入默认值,而不管默认值是什么. 解决方案; 所有数据库系统都支持使用default关键字显示的指定某列插入默认值,有些数据库系统还有其他的方法来解决这个问题. 下面的例子说明了使用default关键字来解决这个问题的方法: inser

mysql插入报错:java.sql.SQLException: Incorrect string value: &#39;\xE6\x9D\xAD\xE5\xB7\x9E...&#39; for column &#39;address&#39; at row 1

界面报错: 日志报错: java.sql.SQLException: Incorrect string value: '\xE6\x9D\xAD\xE5\xB7\x9E...' for column 'address' at row 1 at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129) ~[mysql-connector-java-8.0.17.jar:8.0.17] at com.mys

MySQL中默认值中用时间函数的问题

今天在上课的时候在测试MSSQL建表的时候 注册时间默认值用getdate()可以获取插入值时候的时间create table temp( id int PRIMARY key, in_time datetime NOT NULL default getdate() ) 但是在MYSQL建表练习的时候不能用now()进行对应的做法: create table temp(    id int PRIMARY key,    in_time datetime NOT NULL default now

解决:mysql timestamp默认值0000-00-00 00:00:00 报错

一. 问题的引出 我们在用mysql5.7创建表时,如果把timestamp(时间戳)的默认值设置为0000-00-00 00:00:00 的形式,将会产生一条报错: `RepaymentDate` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '回款日期', 报错信息如下: [Err] 1067 - Invalid default value for 'RepaymentDate' 二. 找出原因 这个问题和mysql中sql

mysql 插入更新在一条sql ON DUPLICATE KEY UPDATE

有时候需要进行数据操作的,如果有数据则更新数据, 没有数据则插入. 以往的做法是先查询,再根据查询结果进行判断,执行插入或更新操作 其实 有一种 ON DUPLICATE KEY UPDATE 语法, 可以在一条sql里完成上述逻辑操作. INSERT INTO tbPrize(sOpenid,iAreaId,iPlatId,SSSgroupOne,SSSgroupTwo,SSgroupOne,SSgroupTwo,SgroupOne,SgroupTwo,dtFound) VALUES ('2A

MySQL在默认事务下各SQL语句使用的锁分析

数据库使用锁是为了支持更好的并发,提供数据的完整性和一致性.InnoDB是一个支持行锁的存储引擎,锁的类型有:共享锁(S).排他锁(X).意向共享(IS).意向排他(IX).为了提供更好的并发,InnoDB提供了非锁定读:不需要等待访问行上的锁释放,读取行的一个快照.该方法是通过InnoDB的一个特性:MVCC来实现的 InnoDB有三种行锁的算法: 1,Record Lock:单个行记录上的锁. 2,Gap Lock:间隙锁,锁定一个范围,但不包括记录本身.GAP锁的目的,是为了防止同一事务的

验证:mysql AUTO_INCREMENT 默认值是1

用mongodb时,有些字段需要做自增,而且是用二十进制字母表示(使用a-t对应0-19),做了一个_auto_increment字段用来保存,但是应该从0开始还是从1开始呢? 和mysql保持一致便于维护.所以试了一下mysql,AUTO_INCREMENT是从1开始的.看来a就不能用了,从b开始,比如b.c……s.t.ba.bb……bs.bt. 代码: create table users(id int(10) unsigned not null auto_increment primary