所有这些都在 MySQL 8.0.18 上使用具有完全权限的
root
用户进行测试
当 SHOW FULL FIELDS FROM first_view;
引用其他表时,运行
first_view
会按预期工作。但是,对引用
second_view
(或任何其他视图)的另一个视图 (
first_view
) 运行相同的操作会失败,并出现以下错误:
View 'second_view' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them. (Error #1356)
这不是由于“损坏”视图,因为我已经删除并重新创建了两个视图,并且它们都返回结果而没有任何问题。任何人都可以帮忙解释一下吗?
更新1:first_view
或
second_view
视图是什么似乎并不重要。不管怎样,这个问题都会发生。
更新 2:这只发生在 Google CloudSQL 托管数据库上,这让我认为这可能是由 DB 标志引起的。