插入更新 数据: 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'
      })
    

results matching ""

    No results matching ""