复合
复合查询
示例使用以下 prisma 模式
model Organization {
platformId String
platformKind String
name String
repositories Repository[]
@@unique(name: "organization_name", [platformId, name])
// Compose the primary key with the platformKind and platformId fields
@@id(name: "organization_id", [platformKind, platformId])
}
model Repository {
platformId String
platformKind String
orgId String?
org Organization? @relation(fields: [platformKind, orgId], references: [platformKind, platformId])
// Compose the primary key with the platformKind and platformId fields
@@id(name: "repository_id", [platformKind, platformId])
}
复合键
您可以使用复合键 ID 查询复合键,无论是唯一键还是主键。
// query by primary key
org, err := client.Organization.FindUnique(
Organization.OrganizationID( // @@id(name: "organization_id", ...) maps to .OrganizationID
Organization.PlatformKind.Equals("private"),
Organization.PlatformID.Equals("123"),
),
).Exec(ctx)
// query by unique key
org, err := client.Organization.FindUnique(
Organization.OrganizationName( // @@id(name: "organization_name", ...) maps to .OrganizationName
Organization.PlatformID.Equals("test"),
Organization.Name.Equals("test"),
),
).Exec(ctx)
使用复合主键创建
要使用复合主键创建记录,只需按正确顺序指定字段。您不必显式指定复合键名称。
org, err = client.Organization.CreateOne(
Organization.PlatformID.Set("123"),
Organization.PlatformKind.Set("private"),
Organization.Name.Set("test"),
).Exec(ctx)