首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >TDSQL-MYSQL版 单表如何使用存储过程

TDSQL-MYSQL版 单表如何使用存储过程

原创
作者头像
大大刺猬
修改2021-04-23 17:54:18
修改2021-04-23 17:54:18
4.3K0
举报
文章被收录于专栏:大大刺猬大大刺猬

tdsql支持3种表:

单表

表结构与数据只存在于第一个set上. 使用和普通mysql完全一样.

分表

对分表键(shardkey)做murmurHashCodeAndMod运算, 数据均匀分布在每个set上(这个说法其实不严谨)

广播表

每个set上都有完整的表数据. 做join的时候方便.

语法: https://cloud.tencent.com/document/product/557/8767

官方说tdsql-mysql不支持存储过程

看起来很多特性都不支持...
看起来很多特性都不支持...

对分表创建存储过程:

会报错Shard table do not support create_or_replace view
会报错Shard table do not support create_or_replace view

对单表创建存储过程

其实实际使用单表的场景不多的, 也不建议使用单表.

可以创建成功

创建存储过程成功
创建存储过程成功

但是无法直接调用存储过程

网关(proxy)不支持直接调用, 为啥不支持呢?

不支持call
不支持call

绕过网关调用存储过程

网关(proxy)不支持, 但是底层是mysql, mysql是支持的啊, 所以我们可以直接到set上去执行.

其实这一点可以官方改进的.

查看后台set信息

1. sql透传查看

2. 控制台点鼠标

然后把sql发往对应的set上执行即可(单表是第一个set).

这样是可以的, 但是不建议这么做.

没想到吧, 透传sql还能用来这么干
没想到吧, 透传sql还能用来这么干

思考一下: 如果我先创建存储过程, 再创建分表, 再透传sql调用存储过程行不行?

答案:不行

对广播表创建存储过程

也是不支持的,

其实也可以使用透传sql, 每个set都创建相同的存储过程, 调用的时候透传到每个set上执行.

结论:

tdsql-mysql版不支持创建存储过程(单表除外), 不支持调用存储过程.

但是单表可以使用sql透传调用存储过程.

题外话:

恭喜自己获得数据库交付运维专家-腾讯云TDSQL(MySQL版)证书^_^

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • tdsql支持3种表:
    • 单表
    • 分表
    • 广播表
  • 对分表创建存储过程:
  • 对单表创建存储过程
    • 可以创建成功
    • 但是无法直接调用存储过程
    • 绕过网关调用存储过程
      • 查看后台set信息
      • 然后把sql发往对应的set上执行即可(单表是第一个set).
  • 对广播表创建存储过程
  • 结论:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档