MySQL模式约束:创建含特定格式enroll_id的student表
学生表(students)建表方案
根据需求,以下是符合指定enroll_id格式的学生表建表语句:
CREATE TABLE students ( enroll_id VARCHAR(20) PRIMARY KEY, std_name VARCHAR(24), CONSTRAINT valid_enroll_id CHECK (enroll_id ~ '^\d{4}(CS|EC|MC|CV)\d{3}(D|0)\d{5}$') );
关键说明:
- 主键设置:
enroll_id作为表的主键,确保每条学生记录唯一 - 字段类型适配:
enroll_id采用VARCHAR(20),足够容纳指定格式的字符串std_name采用VARCHAR(24),适配常规姓名长度需求
- 格式校验规则:通过
CHECK约束结合正则表达式强制enroll_id符合格式要求:^\d{4}:开头为4位年份数字(CS|EC|MC|CV):匹配指定的四个分支代码之一\d{3}:中间为3位学院代码(正则仅校验位数,若需限制数值在001-300范围内,可额外补充数值校验条件)(D|0):匹配专升本(D)或非专升本(0)的入学类型标识\d{5}$:结尾为5位数字(注:示例中结尾为3位数字,若需匹配示例格式,可将\d{5}修改为\d{3})
内容的提问来源于stack exchange,提问作者Kalash Bharti
相关产品推荐
相关产品推荐

