MySQL报错 1356 - View '视图表名' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
情况描述:视图表可以正常使用,使用SQL语句where查询个别字段也可以正常查询,但是有的字段使用where查询时会报这个错误,想知道应该怎样解决
MySQL 1356错误应该怎么解决
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
4条回答 默认 最新
关注 这个错误表示视图定义引用了不存在或无权限访问的表、列或者函数。导致在查询视图时,部分字段能正常使用,部分字段查询报错。
解决方法有:- 授权缺失的表、列或函数的权限。可以查看视图定义,找出报错字段引用的表、列,然后授权使用权限。例如:
GRANT SELECT ON 表名 TO 用户名; GRANT SELECT(列名) ON 表名 TO 用户名;
- 修改视图定义,去除无效的表、列或函数引用。如果引用的表、列已经不存在,需要修改视图定义使其符合现状。
CREATE OR REPLACE VIEW 视图名 AS SELECT 现有字段,... FROM ...
- 重新创建视图。如果视图定义已经严重失效,无法修改,可以选择删除现视图后重新创建。
DROP VIEW 视图名; CREATE VIEW 视图名 AS SELECT ... FROM ...
- 授权在视图定义和查询视图时使用的存储过程或函数的权限。如果是存储过程、函数缺失导致的权限问题,需要授权调用该对象的权限。
GRANT EXECUTE ON 过程名 TO 用户名;
ichever选项可以解决问题,视情况具体选择。如果在授权或修改视图定义时也报类似错误,可能涉及到对象删除或转移的问题,需要进一步检查数据库结构变化。
解决 无用评论 打赏 举报
悬赏问题
- ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
- ¥15 安装quartus II18.1时弹出此error,怎么解决?
- ¥15 keil官网下载psn序列号在哪
- ¥15 想用adb命令做一个通话软件,播放录音
- ¥30 Pytorch深度学习服务器跑不通问题解决?
- ¥15 部分客户订单定位有误的问题
- ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
- ¥15 Bug traq 数据包 大概什么价
- ¥15 在anaconda上pytorch和paddle paddle下载报错
- ¥25 自动填写QQ腾讯文档收集表