mysql - 如何通过存储过程应用约束,ID 应该以“E”开头并且后面有 2 个数字?
问题描述
EID
仅当它以 2 个数字开头并且后面有 2 个数字时才应插入'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
这里的问题是--
或者空格会插入非数字也在这里这个代码还包括一些额外的*只是家庭作业:)
解决方案
为什么要写存储过程?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}$')
推荐阅读
- visual-studio - 无法下载 Visual Studio 安装程序
- jquery - Jquery 3.5 不能在 IE 11 上运行它在 IE7 上运行?
- angular - Angular Universal 部署到云函数未加载样式或 JS
- python-3.x - 文件在 VPS 上将其大小更改为 0 KB
- c++ - 按钮全部突出显示
- javascript - 将错误从服务器传递到客户端 socket.io
- drools - 在drools中以编程方式配置kie模块时添加规则文件
- javascript - 关于在Javascript中添加一个变量本身和另一个变量
- ios - 发送备忘录时的聊天问题
- javascript - 有没有办法通过使用与其名称匹配的字符串来调用函数?