Mysql 如果仅提供值,请检查是否唯一
我有一个users表,它由几个列组成,包括一个mobile number和email address列 我想让手机和电子邮件专栏都成为独一无二的 在一些用户不愿意提供电子邮件地址之前,我一直工作得很好 当电子邮件列为空时,将显示唯一键错误消息 只有在sequelize中为列提供了值时,才能使列唯一吗? 下面是我的用户模式的一段代码:Mysql 如果仅提供值,请检查是否唯一,mysql,node.js,sequelize.js,Mysql,Node.js,Sequelize.js,我有一个users表,它由几个列组成,包括一个mobile number和email address列 我想让手机和电子邮件专栏都成为独一无二的 在一些用户不愿意提供电子邮件地址之前,我一直工作得很好 当电子邮件列为空时,将显示唯一键错误消息 只有在sequelize中为列提供了值时,才能使列唯一吗? 下面是我的用户模式的一段代码: const schema = sequelize.define("users", { id: { type: DataT
const schema = sequelize.define("users", {
id: {
type: DataTypes.INTEGER,
primaryKey: true,
autoIncrement: true
},
name: {
type: DataTypes.STRING,
},
email: {
type: DataTypes.STRING,
unique: {
msg: "Email address is already registered"
},
},
mobile: {
type: DataTypes.STRING,
unique: {
msg: "Mobile number is already registered"
},
},
});
好吧,以你们实施的方式,这是不可能做到的。您需要了解,当您编写
unique
时,这意味着您的数据库将为该字段创建索引。因此,一旦在中有空字符串,下一个空字符串都会导致错误,因为它不是唯一的
处理这个问题的捷径是
NULL
值的方法。实际上,在数据库中没有NULL
值的情况下,它很容易工作电子邮件
和手机
上定义一个触发器
,该触发器将执行行的自定义验证