mysql中修改view的definer


我常用的工具是navicat,但是修改definer不能用工具,只能用命令行;

數據庫遷移到其他服務器上,會報definer錯誤,修改view的definer方法如下(比如把definer改為本地的,要加上select語句):

第一種方法:

 

alter DEFINER = 'root'@'localhost' view BMS_HOTEL_SALES_V as select `hc`.`CHECK_DATE` AS `CHECK_DATE`,`hsm`.`START_DATE` AS `START_DATE`,`hsm`.`END_DATE` AS `END_DATE`,`hc`.`USER_CODE` AS `USER_CODE` from ((`ots`.`sms_hotel_checkbill` `hc` join `ots`.`sms_hotel_sales_mapping` `hsm` on((`hc`.`HOTEL_ID` = `hsm`.`HOTEL_ID`))) join `ots`.`sy_org_role_user` `ru` on(((`ru`.`ROLE_CODE` = ‘XSY’) and (`hc`.`USER_CODE` = `ru`.`USER_CODE`)))) where (`hc`.`USER_CODE` = `hsm`.`USER_CODE`);

 以上的語句中:

  (1)'root'@'localhost'  ——>  '數據庫用戶名'@'主機地址' 

  (2)BMS_HOTEL_SALES_V  ——>  視圖名

  (3)as 后面是視圖語句

第二種:
 
復制視圖創建語句,直接將create改成alter,definer改成相關的,比如root@localhost  例如:
 
用alter view 修改definer的值,alter ALGORITHM=UNDEFINED DEFINER= 'root'@'localhost' SQL SECURITY DEFINER VIEW 'view_product'  AS 視圖選擇語句。
 

 以上的語句中:

  (1)'root'@'localhost'  ——>  '數據庫用戶名'@'主機地址' 

  (2)'view_product'   ——>  視圖名

  (3)AS 后面是視圖語句


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM