假设有个需求,向employee表中新增员工时,工资不准低于5000元。 1、使用check约束来实现 2、使用触发器来实现(触发器一般用来实现更复杂的约束,比如需要同时对多个表中的数据进行判断等,我们这里简单示例一下)
1、用check约束来实现
create table employee_1( eno int primary key, ename varchar(100), deptno varchar(100), job varchar(100), sal float, check (sal>=5000) );然后执行insert语句
insert into employee_1 values(10,'ting','B','数据库工程师',4000);执行insert语句时mysql报错,提示 Error Code: 3819. Check constraint ‘employee_1_chk_1’ is violated.
2、使用触发器来实现
create table employee_2 ( eno int primary key, ename varchar(100), deptno varchar(100), job varchar(100), sal float ); delimiter // create trigger tr_sal before insert on employee_2 for each row begin if new.sal<5000 then signal sqlstate 'ERROR' set message_text='工资不能低于5000元'; end if; end// delimiter ;然后执行insert语句
insert into employee_2 values(10,'ting','B','数据库工程师',4000);执行insert语句时mysql报错,提示:Error Code: 1644. 工资不能低于5000元
