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 后面是视图语句
以上的语句中:
(1)'root'@'localhost' ——> '数据库用户名'@'主机地址'
(2)'view_product' ——> 视图名
(3)AS 后面是视图语句