在使用typeORM定义唯一约束的时候:这里罗列3种类:
@Entity()
@Unique(["firstName"])
@Unique(["lastName", "middleName"])
@Unique("UQ_NAMES", ["firstName", "lastName", "middleName"])
export class User {
@Column({ name: "first_name" })
firstName: string
@Column({ name: "last_name" })
lastName: string
@Column({ name: "middle_name" })
middleName: string
}
这里的前面2行,我能看懂,
@Unique(["firstName"]) // firstName做唯一约束
@Unique(["lastName", "middleName"]) // lastName + middleName 结合做唯一约束
但是这一行是什么意思呢:
@Unique("UQ_NAMES", ["firstName", "lastName", "middleName"])
这一行 @Unique("UQ_NAMES", ["firstName", "lastName", "middleName"]) 的意思是为 firstName、lastName 和 middleName 这三个字段的组合创建一个唯一约束,并且给这个约束命名为 UQ_NAMES。
这样做的好处是,如果你在数据库中遇到唯一约束冲突时,错误信息中会包含这个约束的名称 UQ_NAMES,从而更容易调试和解决问题。