当我运行以下查询时,我收到一个错误:
SELECT
`a`.`sl_id` AS `sl_id`,
`a`.`quote_id` AS `quote_id`,
`a`.`sl_date` AS `sl_date`,
`a`.`sl_type` AS `sl_type`,
`a`.`sl_status` AS `sl_status`,
`b`.`client_id` AS `client_id`,
`b`.`business` AS `business`,
`b`.`affaire_type` AS `affaire_type`,
`b`.`quotation_date` AS `quotation_date`,
`b`.`total_sale_price_with_tax` AS `total_sale_price_with_tax`,
`b`.`STATUS` AS `status`,
`b`.`customer_name` AS `customer_name`
FROM `tbl_supplier_list` `a`
LEFT JOIN `view_quotes` `b`
ON (`b`.`quote_id` = `a`.`quote_id`)
LIMIT 0, 30
Run Code Online (Sandbox Code Playgroud)
错误消息是:
#1449 - The user specified as a definer ('web2vi'@'%') does not exist
Run Code Online (Sandbox Code Playgroud)
为什么我会收到这个错误?我如何解决它?
在我的数据库备份和导出中,我得到如下内容:
/*!50001 DROP TABLE `vTime`*/;
/*!50001 DROP VIEW IF EXISTS `vTime`*/;
/*!50001 CREATE ALGORITHM=UNDEFINED */
/*!50013 DEFINER=`db_user`@`%` SQL SECURITY DEFINER */
/*!50001 VIEW `vTime` AS select ... */;
Run Code Online (Sandbox Code Playgroud)
这在恢复时会导致问题,因为"CREATE ALGORITHM"和"DEFINER"部件在尝试恢复时失败.有没有办法mysqldump简单地做一个简单的方法CREATE VIEW?
奖金问题:这些/*!50001部分是什么意思?
编辑:我应该补充一点,这是我得到的错误:
#1227 - Access denied; you need (at least one of) the SUPER privilege(s) for this operation
编辑2:似乎只有/*!50013 DEFINER=部分失败.
我想知道我是否可以阻止mysqldump插入此命令
/*!50017 DEFINER=`root`@`localhost`*/
Run Code Online (Sandbox Code Playgroud)
或者,如果我之后必须用sed做,例如
谢谢!