提问人:Ness 提问时间:11/8/2023 更新时间:11/8/2023 访问量:21
在MySQL CLI中,有没有办法自动完成过程?
In a MySQL CLI, is there a way to autocomplete procedures?
问:
例如,自动完成允许您键入以下内容:
select cu<TAB> from o<TAB> where nu<TAB> = 42;
结果可能是这样的:
select customer_name from orders where number = 42;
我希望能够使用创建的过程(和函数)来做到这一点,这些过程(和函数)往往具有很长的名称:
call getCustomerByOrderNumber(42);
我找不到任何关于如何做到这一点的答案。我在 SSH 连接上使用 MySQL CLI。运行(或)命令来重新散列自动完成列表似乎仅适用于表名和列名。rehash
\#
答:
1赞
Bill Karwin
11/8/2023
#1
正确 — 客户端中的重新哈希功能对架构、表和列进行哈希处理,但不对其他对象(过程、触发器、函数、事件)进行哈希处理。mysql
您可以通过阅读 mysql.cc 中函数的源代码来确认这一点。build_completion_hash()
参考: https://github.com/mysql/mysql-server/blob/trunk/client/mysql.cc#L3142-L3250
请随时在 bugs.mysql.com 提交功能请求。或者更好的是,自己实现它并贡献一个补丁。
另一方面,MySQL开发人员可能会拒绝功能请求,因为他们希望新的开发专注于MySQL Shell而不是旧客户端。mysql
评论