红移表中的更新
Posted
技术标签:
【中文标题】红移表中的更新【英文标题】:update in redshift table 【发布时间】:2017-03-07 16:44:03 【问题描述】:我对 redshift 中的表格有一个非常奇怪的问题,以下是我采取的步骤:
1 : Alter table_name add columns flag integer
/* table_name row count 10000*/
2 :update table_name set
flag = 1
where/* some condition*/
-----rows affected 4000
3.update table_name set
flag = 0
where flag<> 1
----rows affected 0
当我从 table_name where flag = 1 中选择时,我得到 4000,那么为什么剩下的 6000 没有得到更新? 谁能解释这背后的逻辑?谢谢你的帮助!!
【问题讨论】:
【参考方案1】:因为flag
也可以是null
并且要与null
进行比较,您需要is
运算符(或某些数据库引擎提供的NULL 保存不相等运算符)
update table_name
set flag = 0
where flag is null or flag <> 1
【讨论】:
以上是关于红移表中的更新的主要内容,如果未能解决你的问题,请参考以下文章
我们可以使用复制命令使用访问密钥和秘密密钥将数据从 S3 加载到红移表中吗(不使用 IAM 角色)