当前位置: 首页 > 面试题库 >

如何在MySQL特别是INT dataType中插入NULL

逄俊力
2023-03-14
问题内容

我有80000条重新编码,需要插入数据库中,尤其是在表中:temp(ts,temp)temp是INT。

问题是几乎20000个重新编码为null,所以我想知道当dataType为INT时如何将NULL插入DB。

我尝试了这个:

String val = null;

//insert(ts, val) into temp 
String sql = "INSERT INTO temp" + "(val)" + " VALUES" + "('" + val + "')";
Statement st = (Statement) conn.createStatement();
count  = st.executeUpdate(sql);

不幸的是插入失败。打印出异常消息:

Incorrect integer value: 'null' for column 'val' at row 1"

希望有人可以帮助我。谢谢。


问题答案:

您应该使用PreparedStatement和使用setNull(int, int)

String sql = "INSERT INTO temp(val) VALUES (?)";
PreparedStatement st = con.prepareStatement(sql);
if (/* int value is not null */) {
   st.setInt(1, value);
} else {
   set.setNull(1, Types.INTEGER);
}
count  = st.executeUpdate();


 类似资料:
  • 问题内容: 我从谷歌搜索开始,发现这篇文章讨论了互斥表。 我有一张约有1400万条记录的表。如果我想添加更多相同格式的数据,是否有一种方法可以确保在不使用一对查询的情况下我要插入的记录不存在(即,要检查的一个查询和要插入的一个是结果集是空)? 如果字段上存在约束,是否可以保证该约束将失败? 似乎 只有 一个约束,当我通过php发出插入命令时,脚本就发出了嘶哑的声音。 问题答案: 采用 见http:

  • 问题内容: 我想在单词中插入“ at”一词,以便日期看起来像: 2010年5月26日,星期三,上​​午11:17 我可以使它看起来像没有 2010年5月26日,星期三,上​​午11:17 通过使用 如何插入“ at”一词? 问题答案: 您可以使用单引号将文字转义。 这将在2010年5月26日星期三上午11:17输出

  • 问题内容: 我从谷歌搜索开始,发现这篇文章讨论了互斥表。 我有一张约有1400万条记录的表。如果我想以相同的格式添加更多数据,是否有一种方法可以确保我要插入的记录在不使用一对查询的情况下就不存在(即,要检查的一个查询和要插入的一个查询是结果集是空的)? 字段上的约束是否可以确保如果该约束已经存在,该约束将失败? 似乎 只有 一个约束条件,当我通过php发出插入命令时,脚本就发出了嘎嘎叫声。 问题答

  • 问题内容: 我有许多记录需要输入到表中。在查询中执行此操作的最佳方法是什么?我是否应该进行循环并在每次迭代中插入一条记录?或者,还有更好的方法? 问题答案: 从MySQL手册 使用VALUES语法的INSERT语句可以插入多行。为此,请包括多个列值列表,每个列值括在括号内并用逗号分隔。例:

  • 我正在尝试将我的位图图像插入MySQL,但问题是位图不受支持。我的错误:“System.NotSupportedException:‘不支持参数类型位图;请参阅https://fl.vu/mysql-param-type.value:System.Drawing.Bitmap’”。MySQL中的图片数据类型是blob。我想知道是否应该更改数据类型? 我的按钮注册表

  • 本文向大家介绍如何固定MySQL插入?,包括了如何固定MySQL插入?的使用技巧和注意事项,需要的朋友参考一下 借助以下语法,可以在同时插入多个记录时加快MySQL的插入速度 让我们首先创建一个演示表 同时插入多个记录。查询如下-