1. 级联删除、置空
alter table maintable
add foreign key(fk)
references foreigntable(id)
on delete cascade;
alter table maintable
add foreign key(fk)
references foreigntable(id)
on delete set null;
2. 存储过程和函数
2.1 用户变量和局部变量
set @count = 0;
declare m int default 1;
2.2 存储过程
create procedure procname(参数)
begin
...
end
delimiter $
create procedure mypro()
begin
insert into stuinfo(stuname,`password`)
values('jhon','adssdafexg1251'),('smis','asdfdcccg425');
end $
call mypro() $
delimiter ;
参数类型:IN,OUT,INOUT
drop procedure 过程名;
2.3 存储过程使用
delimiter $
CREATE PROCEDURE mystrtodate(IN myStr VARCHAR(20), IN modle VARCHAR(20), OUT myDate VARCHAR(20))
BEGIN
DECLARE m DATETIME DEFAULT NULL;
SELECT STR_TO_DATE(myStr,modle) INTO m;
SELECT DATE_FORMAT(m,'%Y|%m|%d') INTO myDate;
END $
SELECT @myDate ;
CALL mystrtodate('06/07/2019','%m/%d/%Y', @myDate);
SELECT @myDate;
3. 函数
create function myfun(参数) returns 类型
begin
...
end
create function myfun() returns int
begin
declare cou int default 0;
select count(*) into cou
from employees;
return c;
end $
drop function myfun;