如何通过存储过程应用id应该以“e”开头并且后面有2个数字的约束?

xxls0lw8  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(233)

EID 仅当以开头时才应插入 'E' 后面有两个数字。。。。我试着写一个程序,目的是:

create proc emp_checks(@eid varchar(20), @name varchar(20),@age int, @salary int, @city varchar(20))
AS
Begin
Declare @citycount int= (select count(*) from employee where @city=city)

if (@citycount < 2 and @eid like 'E--%')
insert into employee values(@eid,@name,@age,@salary,@city)
else 
print 'city exceeded'
End

问题是 -- 或者空格会插入非数字也在这里这个代码也包括一些额外的*只是家庭作业:)

6ovsh4lw

6ovsh4lw1#

为什么要编写存储过程?mysql现在支持 check 约束条件:

alter table employee add constraint chk_employee_eid
    check (eid regexp '^E[0-9]{2}')

请注意,这允许在前3个字符之后添加任何内容。如果你什么都不想要,那就加上 $ 对于模式:

alter table employee add constraint chk_employee_eid
    check (eid regexp '^E[0-9]{2}$')

相关问题