mysql timestamp insert 默认值

mysql 5.7 版本,建表语句mysql

CREATE TABLE `people` (
  `job_number` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '员工ID',
  `name` varchar(32) NOT NULL COMMENT '姓名',
  `age` int(11) DEFAULT NULL COMMENT '年龄',
  `gender` varchar(1) DEFAULT NULL COMMENT '性别',
  `dept_id` int(11) DEFAULT NULL COMMENT '部门ID',
  `salary` decimal(12,4) DEFAULT NULL COMMENT '工资',
  `create_time` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
  PRIMARY KEY (`job_number`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8 COMMENT='新员工表'

能够看到create_time的default 是 0000-00-00 00:00:00, 但在使用jdbc写入时,若是传参为null,则默认写入时间是当前时间...sql

例如:url

final Connection conn = DriverManager.getConnection(url , username , password ) ;
conn.setAutoCommit(false);
Row row = it.next();
String insert = "insert into people(name,create_time) values(?,?) ";
PreparedStatement ps = (PreparedStatement) conn.prepareStatement(insert);
ps.setObject(1, "John");
ps.setObject(2, null/*row.getAs("create_time")*/);
ps.addBatch();
ps.executeBatch();
conn.commit();

有点神奇,记录一下,哈哈哈。。code

相关文章
相关标签/搜索