文档章节

往数据库插入NULL的问题

mw96381673
 mw96381673
发布于 2017/04/17 08:03
字数 235
阅读 12
收藏 0
SQL

有时候,我们想往数据库插入记录的时候,某些字段并不需要插入实际的值,保持它的NULL。

单独的SQL语句并不难写

Insert into table(field1,field2,field3) Values(data1,data2,NULL);

但是在程序中,data1,data2,data3往往是变量,我们需要这样拼出一句SQL语句

var1= data1;    var2 = data2; var3 = data3;

"Insert into table(field1,field2,field3) Values("+var1+","+var2+","+var3+")";

如果var1,var2,var3均不为NULL的话,则生成的SQL语句没有问题:

Insert into tabel(field1,field2,field3) Values(data1,data2,data3);

如果var3为空的话,拼出的SQL语句就会为

Insert into table(field1,field2,field3) Values(data1,data2,);运行时会报错

此时,我们需要修改一下

"Insert into table(field1,field2,field3) Values("+var1+","+var2+","+(var3==null?"null":var3)+")";

这里表示如果var3位空的话,那么让拼接出的SQL语句为

Insert into table(field1,field2,field3) Values(data1,data2,null);

这样就不会报错了

© 著作权归作者所有

mw96381673
粉丝 0
博文 9
码字总数 4657
作品 0
闸北
私信 提问
Android SQLite问题

我在进行开发时用到了数据库,创建了数据库,然后创建了几个表。其他表都没有问题,只有一个表出了问题。刚开始时的时候可以插入许多数据,后来我也不知怎么地,它就出问题了。无法插入数据,...

菜鸟刘
2016/10/20
159
0
完美解决mysql下utf-8的乱码问题

建表时先加上default charset=utf8; 插入中文数据之前(Mysql命令提示符下)是用set names gb2312; 在php页面中设置是mysql_query('SET NAMES UTF8'); 在php页面(已设定为utf8后)中插入中文数据...

不容置喙
2014/07/31
1K
1
发现 MySQL 5.6 以及以后版本的字段默认值问题

我们在设计表的时候一般会有一个类似 create_time 的字段,这个字段设置默认值是 CURRENT_TIMESTAMP 而且不允许为空。 在 MySQL 5.5 以及更早版本的时候,当你给这个字段插入一个 NULL 空值的...

红薯
2016/05/03
2.8K
22
mysql 指定的默认值无效

以前用mysql5.0.22 ,虽然指定了默认值但插入数据 时有些字段为null,有些又能使用默认值, 所有只有在程序里自己设定好值,再存入数据库,一直以为是数据库问或者hibernate问题; 今天装了m...

小猫王
2013/05/05
3.4K
2
JPA注解 能不能在项目部署时,向数据库表中插入一条数据呢?

用SSH框架编写web项目的时候遇到这样的一个问题: 有个表中的数据得在项目部署的时候插入MySQL数据库,每次都是在表创建完之后自己在表中插入。 这样做在本地做还好,但是如果将项目部署到远...

双人鱼XKQ
2014/05/10
1K
2

没有更多内容

加载失败,请刷新页面

加载更多

Android 图片加载带进度条的ImageView

https://blog.csdn.net/shu_quan/article/details/79975578

shzwork
23分钟前
7
0
关于XAMPP默认端口80 和443被占用的问题

本文转载于:专业的前端网站➩关于XAMPP默认端口80 和443被占用的问题 关于安装xampp-win32-1.8.1-VC9-installer.zip后启动时候报端口80和443被占用的问题解决 xampp-win32-1.8.1-VC9-instal...

前端老手
25分钟前
6
0
错误Setting the parent of a transform which resides in a Prefab Asset is...

错误日志 Setting the parent of a transform which resides in a Prefab Asset is disabled to prevent data corruption 原因1 用Resouce.Load加载一个prefab,没有实例化直接设置parent ......

XBlock
25分钟前
9
0
Spring boot 配置mybatis

当然任何模式都需要首先引入mybatis-spring-boot-starter的pom文件,现在最新版本是1.1.1(刚好快到双11了 :)) <dependency>    <groupId>org.mybatis.spring.boot</groupId>    <......

雷开你的门
26分钟前
9
0
云栖干货回顾 | 更强大的实时数仓构建能力!分析型数据库PostgreSQL 6.0新特性解读

阿里云 AnalyticDB for PostgreSQL 为采用MPP架构的分布式集群数据库,完备支持SQL 2003,部分兼容Oracle语法,支持PL/SQL存储过程,触发器,支持标准数据库事务ACID。AnalyticDB PG通过行存...

开源中国小二
38分钟前
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部