MySQL学习笔记_10_MySQL高级操作(下)
MySQL高級操作(下)
五、MySQL預處理語句
1、設置預處理stmt,傳遞一個數據作為where的判斷條件
prepare stmt from “select * from table_name where id > ?”;
2、設置一個變量
set @i = 1;
3、執(zhí)行預處理語句
execute stmt using @i;
4、刪除預處理指令
drop prepare stmt;
六、MySQL事務處理
【注意】MyISAM存儲引擎對事務并不支持,應該使用InnoDB存儲引擎
1、set autocommit = 0; #關閉自動提交 2、delete from t1 where id > 4; 3、savepoint p1; #設置還原點 4、delete from t1; 5、rollback to p1; #回滾到p1還原點 6、rollback; #回滾到最原始的還原點 7、commit ; #提交數據到服務器 8、set autocommit = 1; #開啟自動提交,關閉事務處理
七、MySQL存儲
1、創(chuàng)建一個存儲p1()
mysql>\d // #修改定界符為// mysql>create procedure p1()->begin->set @i = 0;->while @i < 100 do->insert into t2(name) values(concat("user",@i));->set @i = @i + 1;->end while;->end;// mysql>\d ;
2、執(zhí)行p1()
callp1();
3、查看procedure的status信息
showprocedure status \G
4、查看procedurep1的具體信息
show create procedure p1 \G
八、MySQL觸發(fā)器
1、創(chuàng)建觸發(fā)器
#創(chuàng)建一個名為t1的觸發(fā)器,當向t1表中插入數據時,就引發(fā)動作:向t2表中插入數
mysql>\d // mysql>create trigger t1 before inserton t1 for each row->begin->insert into t2(name) values(new.name);->end// mysql>\d ;
#創(chuàng)建觸發(fā)器t2,如果表t1刪除數據,則引發(fā)觸發(fā)器,表t2中的數據也相應刪除
mysql>\d // mysql>create trigger t2 before delete on t1 for each row->begin->delete from t2 where id =old.id;->end// mysql>\d ;
#創(chuàng)建觸發(fā)器t3,如果修改表t1則t2中的記錄也相應修改
mysql>\d // mysql>create trigger t3 before update on t1 for each row->begin->update t2 set id =new.id where id = old.id;->end// mysql>\d ;
2、刪除觸發(fā)器
drop trigger trigger_name;
【附】刪除表中所有數據:truncatetable_name; #速度更快,同時也可以清空auto_increment列表
九、重排auto_increment值
MySQL中自動增長的ID如何恢復?
1、清空表的時候,不要用delete from table_name;
而是:truncate [table] table_name;
或者
2、清空內容之后直接使用alter命令修改表
alter table table_name auto_increment = 1;
總結
以上是生活随笔為你收集整理的MySQL学习笔记_10_MySQL高级操作(下)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 职场中一路走来却拂不去一丝失落——一个女
- 下一篇: ObjC: 使用KVO