在 MySQL CLI 中,有没有办法自动完成过程?

问题描述 投票:0回答:1

例如,自动完成功能允许您输入以下内容:

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
(或
\#
)命令来重新哈希自动完成列表似乎仅适用于表和列名称。

mysql autocomplete command-line-interface procedure
1个回答
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
客户端。

© www.soinside.com 2019 - 2024. All rights reserved.