德福 发表于 2023-11-9 14:05:56

存储过程报错 Table 'mysql.proc' doesn't exist

我的 mysql 的版本是:8.0.28, 在云表中,使用 外部数据源 - 数据库(表)对接,是没有问题的。(按照https://docs.iyunbiao.com/home/externaldata/19df 文档操作)。
但当我对接 存储过程 时,刚点开 存储过程,就报错了。错误消息是:Table 'mysql.proc' doesn't exist。



是怎么回事呢?




李根 发表于 2023-11-9 14:51:44

create or replace view `mysql`.`proc` as
SELECT #CONCAT('show create ' ,p.ROUTINE_TYPE, '`', p.ROUTINE_SCHEMA,'`.`', p.`SPECIFIC_NAME`,'`;') showSql ,
       p.ROUTINE_SCHEMA db,
       p.ROUTINE_TYPE type,
       p.SPECIFIC_NAME name,
             GROUP_CONCAT(m.PARAMETER_MODE,' ',m.PARAMETER_NAME,' ',m.DTD_IDENTIFIER ORDER BY m.ORDINAL_POSITION SEPARATOR ',\r\n') param_list
FROM information_schema.`ROUTINES` p
left join information_schema.PARAMETERS m on p.ROUTINE_SCHEMA=m.SPECIFIC_SCHEMA and p.SPECIFIC_NAME=m.SPECIFIC_NAME and p.ROUTINE_TYPE=m.ROUTINE_TYPE
WHERE 1=1 and p.ROUTINE_TYPE ='PROCEDURE'
and p.ROUTINE_SCHEMA not in ('sys','mysql','performance_schema','information_schema')
and p.ROUTINE_SCHEMA = ifnull(database(), p.ROUTINE_SCHEMA) #只显示当前数据库
and left(p.SPECIFIC_NAME,1) <> '_' #过滤_开头的内部函数
#order by p.SPECIFIC_NAME,m.ORDINAL_POSITION
GROUP BY p.ROUTINE_SCHEMA,
       p.ROUTINE_TYPE,
       p.SPECIFIC_NAME;

李根 发表于 2023-11-9 14:50:29

德福 发表于 2023-11-9 14:05
我的 mysql 的版本是:8.0.28, 在云表中,使用 外部数据源 - 数据库(表)对接,是没有问题的。(按照http ...

mysql8.0要用存储过程,要手工建一个视图才行
页: [1]
查看完整版本: 存储过程报错 Table 'mysql.proc' doesn't exist