日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

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

發布時間:2024/10/8 数据库 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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事項,視圖,函數,觸發器命令(詳解)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

總結

以上是生活随笔為你收集整理的mysql命令行查看表的触发器_Mysql事项,视图,函数,触发器命令(详解)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。