CREATE TABLE mobile_record (`id` tinyint(3) default 1,sendid int(11) not null,auditid int(11) default null,PRIMARY KEY (`id`))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8mb4;
如我们创建上述表。
然后运行以下语句:
insert into mobile_record(auditid) values(?) on duplicate key update auditid=?
会发现报以下错误:
java.sql.SQLException: Field 'sendid' doesn't have a default valueat com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1094)at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4226)at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4158)at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2615)at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2776)at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2840)at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2082)at com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:1302)at TestMysql.main(TestMysql.java:20)