如何使用Prisma 2创建Mikrotik记录并关联已有Subnet表数据
关联已有Subnet记录到新创建的Mikrotik设备
嘿,这事儿其实挺简单的,Prisma专门提供了connect关键字来关联已存在的数据库记录,我分两种常见场景给你说明:
场景1:你知道要关联的Subnet的ID
如果已经明确目标Subnet的id值,直接在Subrede字段里用connect指定ID即可:
await prisma.mikrotik.create({ data: { name: rebody.name, ip: rebody.ip, netmask: mask, gatway: rebody.gatway, password: rebody.password, Subrede: { // 把这里的数字替换成你实际要关联的Subnet的ID connect: { id: 1 } } } })
场景2:你不知道Subnet的ID,但知道它的某个唯一字段
假设你的Subnet模型有一个唯一标识字段(比如cidr子网段、name子网名称,且这个字段在Prisma Schema里加了@unique约束),那可以通过这个字段来关联:
await prisma.mikrotik.create({ data: { name: rebody.name, ip: rebody.ip, netmask: mask, gatway: rebody.gatway, password: rebody.password, Subrede: { // 替换成你Subnet模型里的唯一字段和对应值 connect: { cidr: "192.168.0.0/24" } } } })
几个关键细节要注意:
- 字段名必须和你的Prisma Schema完全匹配(大小写敏感!你代码里写的
Subrede,Schema里的关联字段也得是这个名字) - 用来
connect的字段必须是Subnet模型的唯一字段(要么是@id,要么加了@unique),不然Prisma会因找不到唯一匹配的记录而报错 - 确保你的Schema已经正确定义了Mikrotik和Subnet的关联关系,比如Mikrotik模型里有
Subrede Subnet @relation(fields: [subredeId], references: [id])这类配置
内容的提问来源于stack exchange,提问作者Vini DB
相关产品推荐
相关产品推荐

