向列添加约束

时间:2018-11-25 18:40:25

标签: mysql sql

任何人都可以帮助我编写查询,以在带有“%/%”的 BestFigure 列上添加约束,即它应为3/10格式。

请参考图片。

Image Link

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'%/%'))

1 个答案:

答案 0 :(得分:0)

我认为一个更好的解决方案是将两个图形分开存储,然后将它们组合:

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”是什么意思。