我在使用枚举验证 mysql 中的查询时遇到问题。据我所知 mysql 不支持约束,所以我使用 enum
示例代码:
alter table jewerly modify gender enum('M','F') NOT NULL DEFAULT 'M';
如果我像上面那样使用它运行良好,但我在另一种情况下验证时遇到问题。
我想用枚举修改验证:输入的产品ID格式必须类似于:PR[xxx],xxx表示数字。如果我们使用约束,它将像'PR[0-9][0-9][0-9]', 但我不知道如何在枚举中使用。
alter table jewelry modify jewelid enum('PR[0-9][0-9][0-9]') NOT NULL;
我尝试了上面的查询,但它不起作用......有什么想法吗?
最佳答案
您尝试做的事情在 MySQL 中没有任何意义。您似乎正在使用正则表达式格式进行 enum
定义。
虽然枚举可以用于此类验证,但它有一些缺点。例如,值的数量是有限制的。更改类型可能会出现问题——例如修复拼写错误。
相反,您可以考虑使用外键来实现此目的:
create table ref_jewelid (
jewelid varchar(255)
);
create table jewelry (
. . .
constraint fk_jewelid foreign key (jewelid) references ref_jewelid(jewelid)
);
然后,您可以使用有效值填充 ref_jewelid
,或许可以使用电子表格来生成名称。您甚至可以更进一步,让 jewelid
成为一个真正的数字 ID,名称是它的一个属性。这就是我可能会采取的方法。
关于php - 在 MYSQL 中使用 Enum 进行验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34535345/