当前位置: 首页 > article >正文

PG COPY 与 INSERT方式导入数据时, 表默认值表现的不同

使用 insert 插入数据时, 字段默认值的表现


postgres=# \pset null NULL
Null display is "NULL".
postgres=# drop table if exists test;
DROP TABLE
postgres=# create table test(id int, info int default 0);
CREATE TABLE
postgres=# insert into test (id) values(1);
INSERT 0 1
postgres=# insert into test (id) values(2);
INSERT 0 1
postgres=# insert into test (id,info) values(2,NULL);
INSERT 0 1
postgres=# select * from test;
 id | info 

---- +------

  1 |    0
  2 |    0
  2 | NULL
(3 rows)

postgres=# 
postgres=# 
postgres=# insert into test (id) values(3);
INSERT 0 1
postgres=# select * from test;
 id | info 

---- +------

  1 |    0
  2 |    0
  2 | NULL
  3 |    0
(4 rows)

使用 COPY 导入数据时,字段默认值的表现


postgres=# \pset null NULL
Null display is "NULL".
postgres=# drop table if exists test;
DROP TABLE
postgres=# create table test(id int, info int default 0);
CREATE TABLE
postgres=# insert into test (id) values(1);
INSERT 0 1
postgres=# insert into test (id) values(2);
INSERT 0 1
postgres=# insert into test (id,info) values(2,NULL);
INSERT 0 1
postgres=# select * from test;
 id | info 

---- +------

  1 |    0
  2 |    0
  2 | NULL
(3 rows)

postgres=# 
postgres=# 
postgres=# insert into test (id) values(3);
INSERT 0 1
postgres=# select * from test;
 id | info 

---- +------

  1 |    0
  2 |    0
  2 | NULL
  3 |    0
(4 rows)

可以看到, 通过 copy 导入数据的时候, user_status_flag 的默认值虽然是 0 , 但是当 copy 导入数据时对应字段是 null 的话, 也是不会被替换为 0 的,还是 null, 而与 insert 的表现是不一样的


http://www.kler.cn/a/387408.html

相关文章:

  • Android 进入浏览器下载应用,下载的是bin文件无法安装,应为apk文件
  • C指针创建三维数组
  • 如何在 Ubuntu 16.04 上设置 NFS 挂载
  • PCL 点云分割 基于CPC算法的分割
  • 设计模式-七个基本原则之一-单一职责原则 + SpringBoot案例
  • 论文分享:DiskANN查询算法
  • 使用k8s RBAC和ValidatingAdmissionPolicy 配合来校验用户权限
  • Kafka 的一些问题,夺命15连问
  • 简单记录某云创建云主机部署docker,能ping通外网而curl不通的问题
  • 【go从零单排】初探goroutine
  • C# 项目中配置并使用 `log4net` 来输出日志
  • ChatGPT的多面手:日常办公、论文写作与深度学习的结合
  • OpenCV视觉分析之目标跟踪(11)计算两个图像之间的最佳变换矩阵函数findTransformECC的使用
  • MySQL基础-单表查询
  • 【MySQL】数据库整合攻略 :表操作技巧与详解
  • [编译报错]ImportError: No module named _sqlite3解决办法
  • 任天堂闹钟“Alarmo”已被用户破解 可显示自定义图像
  • Linux环境基础和基础开发工具使用
  • 【知识点总结】 Redis 数据类型操作指令
  • GitHub 和 Gitee 的区别和选择指南
  • 【数据集】【YOLO】【目标检测】交通事故识别数据集 8939 张,YOLO道路事故目标检测实战训练教程!
  • js下载excel示例demo
  • Vue keep-alive 深度使用解读
  • 删除conda和 pip 缓存的包
  • 深度剖析RPC框架:为你的分布式应用找到最佳通信方式
  • 每天五分钟深度学习PyTorch:基于全连接神经网络完成手写字体识别