MySQL如何使用check?
我是MYSQL的初学者,我正在尝试使用MySQL如何使用check?,mysql,Mysql,我是MYSQL的初学者,我正在尝试使用CHECKforEmployeeID的格式是E###其中“#”是数字(int)。而DOB即eNEERD应从当前日期算起应为16年或更久。这是表格的代码。谢谢你的帮助 Create table Employee( EmployeeID varchar(200) not null primary key, DOB date, ##Check (DOB <= CURRENT_DATE - interval '16' year), FirstName va
CHECK
forEmployeeID
的格式是E###
其中“#”是数字(int)。而DOB
即eNEERD应从当前日期算起应为16年或更久。这是表格的代码。谢谢你的帮助
Create table Employee(
EmployeeID varchar(200) not null primary key,
DOB date,
##Check (DOB <= CURRENT_DATE - interval '16' year),
FirstName varchar(200),
MiddleName varchar(200),
LastName varchar(200),
Address varchar(255),
StartDate date,
Gender varchar(100)
);
createtableemployee(
EmployeeID varchar(200)非空主键,
DOB日期,
##Check(DOB我将使用正则表达式来确认EmployeeID的有效性,例如:-
EmployeeID varchar(200)非空主键检查EmployeeID REGEXP'E\d{3}',
但是,如果它总是以“E”开头,是否需要存储“E”?能否只存储整数,然后再添加E?整数主键更简单、更快、更小、更健壮
使用a提供带有E的ID
create table Employee (
-- No check required, it's an integer by definition.
-- Takes less storage to store and index.
ID integer primary key,
-- A generated virtual column (takes no storage space)
EmployeeID varchar(255) as (concat('E', id)) virtual
);
insert into Employee (id) values (1), (23), (456);
select * from Employee;
ID EmployeeID
1 E1
23 E23
456 E456
select * from Employee where EmployeeID = 'E456';
ID EmployeeID
456 E456
.您使用的MySQL版本是什么?TimBiegeleisen它是8.0.20。您不能使用检查约束来检查出生日期列,您必须使用触发器。@TimBiegeleisen您能告诉我怎么做吗?出生日期呢?@TimBiegeleisen您的答案很好。