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



是怎么回事呢?




李根已获得悬赏 3 云币

最佳答案

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_ ...
+10
收藏
4 条回帖
李根管理员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;
+11

最近谁赞过

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

mysql8.0要用存储过程,要手工建一个视图才行
+11

最近谁赞过

需要登录后才可进行回复 登录

玩转云表从入门到精通
扫码添加微信立即领取

·云表创始人授课文件
·加入社群与培训学习
·切磋云表开发玩法

商务咨询:0756-3335860
客服咨询