




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
主講教師:魏巍巍北京信息職業技術學院數據庫技術與應用MySQL進階-分區與觸發器創建采集任務01分區01目錄CONTENTS觸發器01分區01分區技術:操作數據表時根據給定的算法,將數據在邏輯上分到多個區域中存儲,在分區中還可以設置子分區,將數據存放到更加具體的區域內。分區分區技術:將一張數據表中的數據存儲在不同物理磁盤中,比單個磁盤存儲更多的數據,如果WHERE子句的條件命中一個分區,掃描相關的一個分區而不用全表掃描,提高查詢效率。提示:如果查詢id為3~5的數據,掃描磁盤1即可。分區分區技術對存儲引擎以及鎖的要求:分區技術不適用于MERGE、CSV或FEDERATED存儲引擎。InnoDB分區表不能設置外鍵,同樣地,與外鍵相關的主表和從表也不能被分區。MySQL5.7中InnoDB表不支持子分區在多個磁盤中存儲,目前僅MyISAM存儲引擎支持。同一個分區表的所有分區必須使用相同存儲引擎。當建表時未指定存儲引擎,在創建分區時就必須設置存儲引擎。MySQL5.6及更早的版本中,對分區的MyISAM表進行操作時會鎖定所有的分區,直到操作完成后才會釋放鎖。而在MySQL5.7中,僅會鎖定與操作相關的分區,不會影響其他分區。分區mysql>CREATETABLE`mydb`.`p_list`(->`id`INTAUTO_INCREMENTCOMMENT'ID編號',->`name`VARCHAR(50)COMMENT'姓名',->`dpt`INTCOMMENT'部門編號',->KEY(`id`)->)ENGINE=INNODB->PARTITIONBYLIST(`dpt`)(->PARTITIONp1VALUESIN(1,3),->PARTITIONp2VALUESIN(2,4)
->);案例:創建分區代碼示例將dpt字段進行分區:值為1或3時,將記錄放在p1分區值為2或4時,將記錄放在p2分區分區#在MySQL的data/mydb目錄下查看分區數據文件p_list#p#p1.ibdp_list#p#p2.ibd案例:創建分區代碼示例p_list是建立分區的數據表名,p1和p2表示分區名稱。分區觸發器02觸發器:可以看作是一種特殊類型的存儲過程,它與存儲過程的區別在于存儲過程使用時需要調用,而觸發器是在預先定義好的事件(如INSERT、DELETE等操作)發生時,才會被MySQL自動調用。觸發器的優點:觸發器可以通過數據庫中的相關表實現級聯無痕更改操作。保證數據安全,進行安全校驗。觸發器的缺點:觸發器的使用會影響數據庫的結構,同時增加了維護的復雜程度。觸發器的無痕操作會造成數據在程序(如PHP、Java等)層面不可控。觸發器CREATETABLE`my_shopcart`(`id`INTUNSIGNEDPRIMARYKEYAUTO_INCREMENTCOMMENT'購物車id',`user_id`INTUNSIGNEDNOTNULLDEFAULT0COMMENT'用戶id',`goods_id`INTUNSIGNEDNOTNULLDEFAULT0COMMENT'商品id',`goods_price`DECIMAL(10,2)UNSIGNEDNOTNULLDEFAULT0COMMENT'單價',`goods_num`INTUNSIGNEDNOTNULLDEFAULT0COMMENT'購買件數',`is_select`TINYINTUNSIGNEDNOTNULLDEFAULT0COMMENT'是否選中',`create_time`DATETIMENOTNULLDEFAULTCURRENT_TIMESTAMPCOMMENT'創建時間',`update_time`DATETIMEDEFAULTNULLCOMMENT'更新時間')ENGINE=InnoDBDEFAULTCHARSET=utf8;案例:觸發器的使用代碼示例STEP01創建my_shopcart購物車表。以my_goods和my_shopcart為例,演示添加商品到購物車后自動減少商品庫存。觸發器mysql>DELIMITER$$mysql>CREATETRIGGERinsert_triBEFOREINSERT->ONmy_shopcartFOREACHROW->BEGIN->DECLAREstocksINTDEFAULT0;->SELECTstockINTOstocksFROMmy_goodsWHEREid=new.goods_id;->IFstocks<=new.goods_numTHEN->SETnew.goods_num:=stocks;->UPDATEmy_goodsSETstock=0WHEREid=new.goods_id;->ELSE->UPDATEmy_goodsSETstock=stocks-new.goods_numWHERE->id=new.goods_id;->ENDIF;->END;->$$QueryOK,0rowsaffected(0.01sec)mysql>DELIMITER;案例:觸發器的使用代碼示例STEP02為my_shopcart購物車表創建觸發器。觸發器mysql>SELECT`id`,`stock`FROM`my_goods`WHERE`id`=1;+----+-------+|id|stock|+----+-------+|1|500|+----+-------+案例:觸發器的使用代碼示例STEP03觸發insert_tri觸發器。查看my_goods表中商品編號為1的庫存量stock。觸發器mysq1>INSERTINTO`my_shopcart`(`user_id`,`goods_id`,`goods_num`,->`goods_price`)VALUES(3,1,1000,0.50);案例:觸發器的使用代碼示例STEP04觸發insert_tri觸發器。向購物車表my_shopcart中插入數據。觸發器mysql>SELECT`id`,`stock`FROM`my_goods`WHERE`id`=1;+----+-------+|id|stock|+----+-------+|1|0|+----+-------+mysql>SELECT`id`,`user_id`,`goods_id`,`goods_num`,`goods_price`FROM`my_shopcart`;+----+---------+----------+------------+--------------+|id|user_id|goods_id|goods_num|goods_price|+----+---------+----------+------------+--------------+|1|3|1|500|0.50|+----+---------+----------+------------+--------------+案例:觸發器的使用代碼示例STEP05觸發insert_tri觸發器。查看my_goods和my_shopcart表在觸
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 員工健康體檢項目合同
- 昆明學院《中國古代文學(二)》2023-2024學年第一學期期末試卷
- 上海音樂學院《馬克思主義經濟學經典文獻導讀》2023-2024學年第二學期期末試卷
- Cisco服務等級協議合同版
- 江蘇省南通市實驗中學2024-2025學年高三第二次調研統一測試生物試題含解析
- 棗莊學院《云計算原理與實踐》2023-2024學年第二學期期末試卷
- 無錫市惠山區2025屆四年級數學第二學期期末質量檢測模擬試題含解析
- 遼寧醫藥職業學院《音樂基礎》2023-2024學年第一學期期末試卷
- 山東省高青縣2025年高中畢業生班階段性測試(三)化學試題含解析
- 遼寧省盤錦市雙臺子區第一中學2025年初三下學期期末質量調研英語試題含答案
- 麻醉藥品、一類精神藥品采購、驗收、儲存管理制度
- 高職勞動教育學習通超星期末考試答案章節答案2024年
- 美術教室裝修合同模板
- 陜西省漢中市高2025屆高三上學期第一次校際聯考試卷歷史(含答案)
- 2024年“五史”教育全文
- Unit 7 Happy Birthday!Section A(教學教學設計)2024-2025學年人教版英語七年級上冊
- 同仁堂集團招聘筆試題庫2024
- 免疫治療中假性進展的機制與評估標準
- 公路水運工程施工企業主要負責人和安全生產管理人員考核大綱和模擬試題庫1
- 互動硬件體感交互設備
- 四川省成都市2022-2023學年五年級下學期數學期末試卷(含答案)
評論
0/150
提交評論