mysql命令行查看表的触发器_Mysql事项,视图,函数,触发器命令(详解)

事项开启和使用

//修改表的引擎

alter table a engine=myisam;

//开启事务

begin;

//关闭自动提交

set autocommit=0;

//扣100

update bank set money=money-100 where bid=1;

//回滚,begin开始的所有sql语句操作

rollback;

//开启事务

begin;

//关闭自动提交

set autocommit=0;

//扣100

update bank set money=money-100 where bid=1;

//加100

update bank set money=money+100 where bid=2;

//提交

commit;

实例操作

$dsn = "MysqL:host=127.0.0.1;dbname=c58";

try {

//通过pdo连接数据库

$pdo = new Pdo($dsn,'root','');

//把错误设置成异常模式,才能try catch接收

$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);

//设置字符集

$pdo->query("SET NAMES utf8");

//开启事务

$pdo->query("BEGIN");

//关闭自动提交

$pdo->query("SET AUTOCOMMIT=0");

//转账

//扣掉100

$pdo->exec('UPDATE bank SET money=money-100 WHERE bid=1');

//加上100

$pdo->exec('UPDATE bank SET money=money+100 WHERE bid=2');

//提交

$pdo->query('COMMIT');

} catch (PDOException $e) {

$pdo->query('ROLLBACK');

echo $e->getMessage();

}

注释:事项可以帮助我们更安全的操作数据

视图的创建删除和使用

//1.创建视图

create view bankview as select bid,bname from bank;

//2.查看视图

show table status where comment='VIEW';

//3.修改视图

alter view bankview as select bid from bank;

//4.删除视图

drop view bankview;

存储过程的创建删除查询和使用

//更变边界符

//更变边界符

\d $

//创建存储过程

create procedure get_bid(inout n char(20) charset utf8)

begin

select bid from bank where name=n;

end

$

//调用

set @name='震'$

call get_bid(@name)$

//存储过程作业

//1. 创建删除班级的存储过程

//2. 实现删除班级时一并删除此班级中的学生

//3. 调用方式call del_class(1);

//创建表

create table class(

cid int unsigned primary key auto_increment,cname char(20) not null default ''

);

create table stu(

sid int unsigned primary key auto_increment,sname char(20) not null default '',cid int unsigned not null default 0

);

\d $

create procedure del_class(inout id smallint)

begin

delete from class where cid=id;

delete from stu where cid=id;

end

$

set @id=1$

call del_class(@id)$

//1.in(输出外面传入的值,不能改变外面传入的值)

create procedure a(in id int)

begin

select id;

set id=100;

end

$

//2.out(不可以输出外面传入的值,能改变外面传入的值)

create procedure b(out id int)

begin

select id;

set id=100;

end

$

//3.inout(综合上述两种情况)

create procedure insert_data(in num int)

begin

while num > 0 do

insert into class set cname=num;

set num = num - 1;

end while;

end

$

//查看状态

show procedure status;

//删除get_bid这个存储过程

drop procedure get_bid;

存储函数创建删除和使用

//创建

create function hello(s char(20) charset utf8)

returns char(50)

reads sql data

begin

return concat('hello ',s,' !');

end

$

//调用

select hello('hdw')$

+--------------+

| hello('hdw') |

+--------------+

| hello hdw ! |

+--------------+

//删除

drop function hello$

//创建存储函数

create function getcid(n char(20) charset utf8)

returns int

reads sql data

begin

return (select cid from stu where sname=n);

end

$

//存储函数可以用在sql语句中

select cname from class where cid=getcid('小猫')$

触发器创建删除和使用

//删除班级自动触发删除学生

create trigger del_class_stu after delete on class

for each row

begin

delete from stu where cid=old.cid;

end

$

//触发器作业

创建文章表含标题、作者、发布时间字段

如果只添加了标题,发布时间字段自动设置为当前时间,作者字段设置为123网

\d $

create trigger this_name before insert on this_table for each row

begin

if new.uname is null then

set new.uname='123';

end if;

if new.timer is null then

set new.timer=unix_timestamp(now());

end if;

end

$

//查询已有触发器

show triggers;

注释:触发器是设置好当执行某一个行为时执行另一个方法!

以上这篇MysqL事项,视图,函数,触发器命令(详解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持编程小技巧。

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

如您喜欢交流学习经验,点击链接加入交流1群:1065694478(已满)交流2群:163560250

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值