这是我的问题:我有一个PATCH
API请求,它将PostgreSQL
表中现有的dateofbirth
条目替换为null
,但在PATCH
主体中没有提供dateofbirth
(例如,编辑其他字段(firstname
)时)。
在我的PostgreSQL
Customers
表中,dateofbirth
字段的类型为datetime
。下面用typescript
编写的Prisma
函数对我的PostgreSQL
Customers表执行Update
:
export async function editCustomer(id: number, customerNewInfo: {firstname: string, lastname: string, email: string, dateofbirth: string}) {
await prisma.customers.update({
where: {
id: id
},
data: {
firstname: customerNewInfo.firstname,
lastname: customerNewInfo.lastname,
email: customerNewInfo.email,
dateofbirth: new Date(customerNewInfo.dateofbirth)
},
})
}
正如您所猜测的,当我不提供dateofbirth
时,new Date(customerNewInfo.dateofbirth)
实际上是将null传递给Prisma
。如果我取出new Date()
,则会在数据库端得到一个错误,说明该字段为datetime
,而我提供了String
。
如何在发送PATCH
API调用时强制dateofbirth
datetime
类型,同时不将现有条目替换为null
?
1条答案
按热度按时间2nbm6dog1#
如果有人想知道,这里是解决方案:
这来自Prisma文档:
将字段值设置为undefined等同于在更新查询中根本不包括电子邮件字段
来源:Prisma Client Documentation