暂无图片
暂无图片
3
暂无图片
暂无图片
暂无图片

[译] 来自 Percona Support Team 的新年祝福!

原创 严少安 2022-01-29
566
原文地址: https://www.percona.com/blog/percona-support-team-new-year-greetings/
原文作者: Sveta Smirnova

译文

NYTree.gif

在Percona支持团队,我们每周花几个小时做这样的实验: 短期的集体项目,与工作任务没有直接关系。
我们最近一次的实验是关于即将为冬季假期做准备,或者说我们将准备圣诞树并装饰它。 为此,我们使用了自己最喜欢的工具: MySQL和ASCII图像。因此,我们创建了一个函数,并在终端中打印圣诞树,并用我们想要的符号装饰它。

例如,要创建一个用星星装饰的三层树,函数调用方法如下:

$ mysql ny_tree -e "select ny_tree(3, '*')" --vertical --skip-column-names -s *************************** 1. row *************************** /\ /__\ /* \ /____\ / * \ /______\ ||

因为MySQL支持Unicode,您可以使用任何符号,且使符号和空格的宽度一样。例如,您可以用蜡烛装饰你的圣诞树,而不会有点燃你家的风险:

$ mysql ny_tree -e "select ny_tree(4, '🕯')" --vertical --skip-column-names -s *************************** 1. row *************************** /\ /__\ /🕯 \ /____\ /🕯 🕯\ /______\ /🕯🕯 🕯 \ /________\ ||

您可以将终端的颜色更改为看起来更喜庆的颜色,将终端的大小与树中的层数对齐,并在循环中调用函数以获得动态图像。
例如,本文开头的动图是由以下这个命令实现的:

$ for i in `seq 1 1 1000`; do mysql ny_tree -e "select '\\nHappy New 2022 Year\!', ny_tree(12, '⚝')" --vertical --skip-column-names -s; sleep 1; done

我只需调整终端的尺寸并符合树的层数。
ny_tree和两个辅助函数的代码位于 https://github.com/Percona-Lab/ny-tree
我们,Percona支持团队,祝您新年快乐,在新的一年里数据库平稳运行!


译者注

在导入函数时,如果遇到报错:ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable), 则只需调整这个参数即可:set global log_bin_trust_function_creators = true;

本地实测好用!so cool!

for i in `seq 1 1 1000`; do mysql -uroot sbtest -e "select '\\n新春快乐,虎年大吉!卧虎藏喵,全力以富!\!', ny_tree(12, '*')" --vertical --skip-column-names -s; sleep 1; done

20220129_175543.jpg

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论