我最近刚学了sql server,想建立一个表,代码如下:CREATE TABLE 中国居民身份信息表 (姓名 varchar(50) NOT NULL ,性别 varchar(5) CHECK(性别='男' OR 性别='女') NOT NULL,身份证 varchar(18) CHECK (LEN(身份证) IN (18)) PRIMARY KEY,出生年月 varchar(8) CHECK(出生年月=SUBSTRING('身份证',6,8))NOT NULL,年龄 int CHECK(年龄=2017-CONVERT(INT,SUBSTRING('身份证',6,4))and 年龄<=150 and 年龄>0));一开始我想让出身年月和年龄根据我输入的身份证字符自动生成,用的是DEFAULT约束,不过不行,后来想让这两个字段要符合上面的规则,不过不知道怎么写,在网上找了很久还是找不到,希望有知道的朋友告诉我在建表的过程中能不能实现这些要求,谢谢!
1 回答
已采纳
HalfAnHour
TA贡献52条经验 获得超73个赞
这些东西都是代码上来实现的,跟你的表没关系。比如你的身份证,老版的身份证貌似15位数,新版的才18位,你不能在数据库就限制必须18位,出生年月的话最好存入时间戳,这样方便计算。假如人家进来不填写性别,你怎么办?默认设置男?所以可以用数字代替0男1女2保密。当然我上面的全是我个人的想法。拙见
- 1 回答
- 0 关注
- 1476 浏览
添加回答
举报
0/150
提交
取消