大查询 - 仅在列值不存在时插入

Posted

技术标签:

【中文标题】大查询 - 仅在列值不存在时插入【英文标题】:Big Query - Only insert if column value does not exist 【发布时间】:2017-01-24 21:29:53 【问题描述】:

Big Query 是否支持“REPLACE INSERT”之类的操作或与之相关的操作?

如果我两次运行这样的查询:

INSERT INTO table(column1) VALUES(1)

它会创建一个重复的行,是否只有在不存在具有相同值的列时才可以插入一行?

谢谢!

【问题讨论】:

【参考方案1】:

下面应该可以了

#standardSQL
INSERT INTO yourTable(column1)
SELECT value FROM (SELECT 1 AS value) 
LEFT JOIN yourTable  
ON column1 = value
WHERE column1 IS NULL

【讨论】:

你能解释一下这个说法吗?【参考方案2】:

这对你有用吗?

INSERT INTO table(column1)
WITH s AS (SELECT 1 src)
SELECT src FROM s WHERE NOT EXISTS (
  SELECT * FROM table t WHERE t.column1 = s.src
)

【讨论】:

以上是关于大查询 - 仅在列值不存在时插入的主要内容,如果未能解决你的问题,请参考以下文章

仅当每个唯一列值不存在时才为每个唯一列值添加一行

仅在列存在时才提供数据框列表

POSTGRES:如何仅在另一个值不存在时选择具有某个值的行,在这种情况下选择另一个值?

如果存在则插入仅在表中有记录时才有效

如果值不存在,将值插入 MySQL 表?

Mongodb如何仅在不存在时插入(如果存在则不更新)?