例如,自动完成功能允许您输入以下内容:
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
客户端中的重新哈希功能会对架构、表和列进行哈希处理,但不会对其他对象(过程、触发器、函数、事件)进行哈希处理。
您可以通过阅读 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
客户端。