插入更新 数据: upsert()
对表执行UPSERT.
const { data, error } = await supabase
.from('messages')
.upsert({ id: 3, message: 'foo', username: 'supabot' })
参数
-
values required
Partial
|array
插入的值. -
已命名的参数 required
object
、-
returning required
minimal
|representation
默认情况下返回新记录。如果您不需要此值,请将其设置为‘minimal' -
onConflict required
undefined
|string
通过指定 `on_conflict` 查询参数,你可以使UPSERT工作在有UNIQUE约束的列上. -
ignoreDuplicates required
boolean
指定重复行是否应忽略而不插入. -
count required
null
|exact
|planned
|estimated
用于对表中的行进行计数的计数算法.
属性
提示
- 主键应包含在数据负载中,以便更新正常工作。
- 主键必须是自然主键,而不是代理主键。但是,代理主键有一些变通方法.
例子
Upsert您的数据
const { data, error } = await supabase .from('messages') .upsert({ id: 3, message: 'foo', username: 'supabot' })
批量Upsert您的数据
const { data, error } = await supabase .from('messages') .upsert([ { id: 3, message: 'foo', username: 'supabot' }, { id: 4, message: 'bar', username: 'supabot' } ])
插入有约束的表
行以下命令将导致 supabase 将数据更新插入users表中。如果用户名 'supabot' 已经存在,则onConflict参数告诉 supabase 使用onConflict列传入的值覆盖该行。
const { data, error } = await supabase .from('users') .upsert({ username: 'supabot' }, { onConflict: 'username' })
返回确切的行数
const { data, error, count } = await supabase .from('users') .upsert({ id: 3, message: 'foo', username: 'supabot' }, { count: 'exact' })
-