gpt4 book ai didi

supabase - 如何更新 Supabase 表中的整行? (出现 400 错误)

转载 作者:行者123 更新时间:2023-12-05 02:32:45 27 4
gpt4 key购买 nike

我正在尝试制作一个输入表单,用户可以在其中同时更改一行中的多个值,这些值使用 update() 方法提交到数据库。这些值作为默认值从 Supabase 表中读取到多个输入字段中,用户可以编辑这些值并稍后提交表单以更新表的 Supabase 实例中的值。

Input Form Looks Like This

从用户那里接收到的输入值存储在一个对象中,该对象具有以下形状:

inputFields = {
"name": "Piramal Glassed", // NEW
"email": "piramal@glass.com", // NEW
"contact": "98203" // NEW
"pin": 400066,
"city": "Mumbai",
"state": "Maharashtra",
"country": "India",
}

标记为//NEW 的值是用户已更改的值,需要在 Supabase 表的后续行中更新。

我不断收到 400 错误。 RLS 现在被禁用。这是我用来将数据发送回 supabase 表的函数。

    const { data, error } = await supabase
.from("company")
.update([inputFields.values])
.match([originalFields.values]); // Contains Original Values Of Row That Need To Be Replaced (same shape as inputFields.values)
};

我在这里做错了什么?

最佳答案

看起来您的match 过滤器不起作用。

我建议尝试通过 ID 匹配行,因为您只想更新一行。这样您实际上是在尝试更新与此数据匹配的所有行,这可能会导致问题。我不确定我们现在是否可以使用 supabase 进行批量更新。

这是我在我的应用程序中使用的东西,每当我想更新单行的数据时,我没有遇到任何问题。如果问题仍然相关,我建议试试这个。 😊

await supabase.from("company").update(inputFields).match({ id: company.id });

await supabase.from("company").update(inputFields).eq("id", company.id)

您也可以只将新值传递给 .update(),这样您就不会更新整行,而只会更新已更改的数据。

关于supabase - 如何更新 Supabase 表中的整行? (出现 400 错误),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71159169/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com