任何人都可以帮我编写一个查询,以在带有“%/%”的 BestFigure 列上添加约束,即它应该是 3/10 格式。
请引用图片。
create table Player(
Player_No int Identity(1,1) Primary Key, Player_Name Varchar(20) Not null,
Category Varchar(20) check (Category='batsman' or Category='bowler' or Category='Allrounder'),
BestFigure Varchar(10) check (Bestfigure like'%/%'))
最佳答案
我认为更好的解决方案是将两个数字分开存储,然后将它们组合起来:
BestFigure_left int,
BestFigure_right int,
BestFigure varchar(10) generated always as (concat(BestFigure_Left, '/', BestFigure_Right))
MySQL 实际上并不强制执行检查约束(这就是需要触发器的原因)。如果是的话,你会这样做:
BestFigure Varchar(10) check (Bestfigure regexp '^[0-9]{1,3}/[0-9]{1,6}$')
或者类似的东西。我不清楚你的描述中的“3”和“10”是什么意思。
关于mysql - 向列添加约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53470685/