MariaDB 10.3首推系统版本表,误删数据不用跑路了!

复制CREATETABLE `t1` ( `id` int(11) NOTNULL AUTO_INCREMENT,首数据 `name` varchar(100) DEFAULTNULL, `ts` timestamp(6) GENERATED ALWAYS AS ROW START, `te` timestamp(6) GENERATED ALWAYS AS ROW END, PRIMARYKEY (`id`,`te`), PERIOD FOR SYSTEM_TIME (`ts`, `te`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 WITH SYSTEM VERSIONING; 1.2.3.4.5.6.7.8.
本文地址:http://www.bzuk.cn/html/178d5699765.html
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。
相关文章
神舟战神电脑BIOS教程(解锁潜能,掌握BIOS设置,让战神更强大)
多进程可以监听同一端口吗
工业远程访问真得风险巨大令人恐惧吗?
MySQL数据库与表的几个基本命令示例
技巧一、用命令行往文件的顶部添加文字每次我都会重新寻找这个命令的写法。下面就是如何使用sed往一个文件顶部添加一行的方法:复制代码代码如下: sed -i 1s/^/line to insertn/ path/to/file/you/want/to/change.txt技巧二、用命令行往配置文件里插入多行文本这种方法非常简单,很多人都知道,下面就是如何用命令行将(>>)多行文本插入一个文件中。这里使用的是“here document”语法,它能让你通过块文本符号来将段落插入文件中,通常用的符合是EOF(意思是 “End Of File”):复制代码代码如下:cat >>path/to/file/to/append-to.txt << EOF export PATH=$HOME/jdk1.8.0_31/bin:$PATH export JAVA_HOME=$HOME/jdk1.8.0_31/ EOF两个”EOF“之间的所有内容都会被添加到文件中。技巧三、用命令行递归方式全局搜索目录文件和替换假如你使用Eclipse,ItelliJ或其它IDE,这些工具的强大重构能力也许会让你轻松实现很多事情。但我估计很多时候你的开发环境中没有这样的集成工具。如何使用命令行对一个目录进行递归搜索和替换?别想Perl语言,你可以使用find and sed。复制代码代码如下:# OSX version find . -type f -name *.txt -exec sed -i s/this/that/g {} +使用了一段时间后,我总结写出了一个函数,添加入了 .bashrc ,就像下面这样:复制代码代码如下:function sr { find . -type f -exec sed -i s/$1/$2/g {} +}你可以像这样使用它:复制代码代码如下:sr wrong_word correct_word技巧四、用命令行在vim和Dropbox里开启一个临时文件我过去喜欢用Emacs里的scratch facility功能。也经常用Vim快速创建临时文件。下面这两个函数是使用openssl生成随机的字符串作为文件名:复制代码代码如下:function sc { gvim ~/Dropbox/$(openssl rand -base64 10 | tr -dc a-zA-Z).txt } function scratch { gvim ~/Dropbox/$(openssl rand -base64 10 | tr -dc a-zA-Z).txt }在命令行窗口输入sc或scratch,一个新的gvim或macvim窗口就会弹出来,里面会加载一个随机文件名的临时文件。技巧五、用命令行下载文件,支持链接转向、HTTPS和安全加密等情况下载一个页面输出到终端,跟随链接转向,忽略安全异常:复制代码代码如下:curl -Lks 下载一个链接,跟随链接转向,忽略安全异常: [/code]curl -OLks 这里用了很多参数,你可以阅读这个简单的curl文档来了解它们。技巧六、Bashmarks你还没有在.bashrc里使用bashmarks吗?还在等待什么?它真的非常有用。它能帮你保持历史操作,跳回到你经常使用的目录。下面是我的配置文件里脚本,但我想上面的链接能提供你更多技巧:复制代码代码如下: # USAGE: # s bookmarkname - saves the curr dir as bookmarkname # g bookmarkname - jumps to the that bookmark # g b[TAB] - tab completion is available # l - list all bookmarks # save current directory to bookmarks touch ~/.sdirs function s { cat ~/.sdirs | grep -v export DIR_$1= >~/.sdirs1 mv ~/.sdirs1 ~/.sdirs echo export DIR_$1=$PWD >>~/.sdirs } # jump to bookmark function g { source ~/.sdirs cd $(eval $(echo echo $(echo $DIR_$1))) } # list bookmarks with dirnam function l { source ~/.sdirs env | grep ^DIR_ | cut -c5- | grep ^.*= } # list bookmarks without dirname function _l { source ~/.sdirs env | grep ^DIR_ | cut -c5- | grep ^.*= | cut -f1 -d = } # completion command for g function _gcomp { local curw COMPREPLY=() curw=${COMP_WORDS[COMP_CWORD]} COMPREPLY=($(compgen -W `_l` -- $curw)) return 0 } # bind completion command for g to _gcomp complete -F _gcomp g技巧七、从格式化输出里提取一列(我最常使用的awk技巧)我几乎天天都会使用它。真的。经常会有一些输出,我只需要其中的第二列,或第三列,下面这个命令就能做到这些:复制代码代码如下:#Sample output of git status -s command: $ git status -s M .bashrc .vim/bundle/extempore/ # Remove status code from git status and just get the file names $ git status -s | awk {print $2} .bashrc .vim/bundle/extempore/为什么不写个函数,让我们随时都可以用呢?复制代码代码如下: function col { awk -v col=$1 {print $col} }这使得提取列非常容易,比如,你不想要第一列?简单:复制代码代码如下:$ git status -s | col 2 .bashrc .vim/bundle/extempore/技巧八、忽略头x个词我对xargs很着迷,我感觉它就像一把快刀。但有时候用它获得的结果需要调整一下,也许需要取得一些值。例如,你想去掉下面文件影像里的一些信息:复制代码代码如下:function skip { n=$(($1 + 1)) cut -d -f$n- }下面是如何使用它: 使用 docker images 得到下面的输出:复制代码代码如下:$ docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE 65a9e3ef7171 3 weeks ago 1.592 GB 7c01ca6c30f2 3 weeks ago 11.1 MB 9518620e6a0e 3 weeks ago 7.426 MB 430707ee7fe8 3 weeks ago 7.426 MB boot2docker/boot2docker latest 1dbd7ebffe31 3 weeks ago 1.592 GB spaceghost/tinycore-x86_64 5.4 f47686df00df 7 weeks ago 11.1 MB durdn/bithub latest df1e39df8dbf 8 weeks ago 100.9 MB c5e6cf38d985 8 weeks ago 100.9 MB nginx latest e426f6ef897e 12 weeks ago 100.2 MB zoobab/tinycore-x64 latest 8cdd417ec611 8 months ago 7.426 MB scratch latest 511136ea3c5a 20 months ago 0 B 使用上面的函数,你可以获取所有的IDs:复制代码代码如下:$ docker images | col 3 IMAGE 65a9e3ef7171 7c01ca6c30f2 9518620e6a0e 430707ee7fe8 1dbd7ebffe31 f47686df00df df1e39df8dbf c5e6cf38d985 e426f6ef897e 8cdd417ec611 511136ea3c5a 进一步处理:复制代码代码如下:docker images | col 3 | xargs IMAGE 65a9e3ef7171 7c01ca6c30f2 9518620e6a0e 430707ee7fe8 1dbd7ebffe31 f47686df00df df1e39df8dbf c5e6cf38d985 e426f6ef897e 8cdd417ec611 511136ea3c5a 但前面的”IMAGE”字符我也想去掉:复制代码代码如下:docker images | col 3 | xargs | skip 1 65a9e3ef7171 7c01ca6c30f2 9518620e6a0e 430707ee7fe8 1dbd7ebffe31 f47686df00df df1e39df8dbf c5e6cf38d985 e426f6ef897e 8cdd417ec611 511136ea3c5a 完整的写下来就是这样:复制代码代码如下:docker rmi $(docker images | col 3 | xargs | skip 1)技巧九、创建自己的命令包在bash里,你可以很容易的创建自己的命令组件,你可以看一下下面我写的:复制代码代码如下: function dur { case $1 in clone|cl) git clone git@bitbucket.org:nicolapaolucci/$2.git ;; move|mv) git remote add bitbucket git@bitbucket.org:nicolapaolucci/$(basename $(pwd)).git git push --all bitbucket ;; trackall|tr) #track all remote branches of a project for remote in $(git branch -r | grep -v master ); do git checkout --track $remote ; done ;; key|k) #track all remote branches of a project ssh $2 mkdir -p .ssh && cat >>.ssh/authorized_keys < ~/.ssh/id_rsa.pub ;; fun|f) #list all custom bash functions defined typeset -F | col 3 | grep -v _ | xargs | fold -sw 60 ;; def|d) #show definition of function $1 typeset -f $2 ;; help|h|*) echo [dur]dn shell automation tools echo commands available: echo [cl]one, [mv|move] echo [f]fun lists all bash functions defined in .bashrc echo [def] lists definition of function defined in .bashrc echo [k]ey copies ssh key to target host echo [tr]ackall], [h]elp ;; esac }通过上面的脚本,我可以将ssh key拷贝到任何网站服务器——只需要键入 dur key user@somehost.总结你可以试一下我的这个.bashrc文件,或你自己也可以写一个。
MySQL 触发器insert 的3个示例演示
MySQL修改数据的实际操作步骤介绍
安装MySQL数据库在Ubuntu之下的简捷方案
热门文章
- 1电脑读书小报制作教程(利用电脑软件制作精美小报,提升阅读体验)
- 2MySQL master-slave在windows下的操作
- 3SQL Server存储过程之新手导航
- 4如何让Shell脚本变成可执行文件
- 5Chrony是一个开源的自由软件,它能帮助你保持系统时钟与时钟服务器(NTP)同步,因此让你的时间保持精确。它由两个程序组成,分别是chronyd和chronyc。chronyd是一个后台运行的守护进程,用于调整内核中运行的系统时钟和时钟服务器同步。它确定计算机增减时间的比率,并对此进行补偿。chronyc提供了一个用户界面,用于监控性能并进行多样化的配置。它可以在chronyd实例控制的计算机上工作,也可以在一台不同的远程计算机上工作。在像CentOS 7之类基于RHEL的操作系统上,已经默认安装有Chrony。Chrony配置当Chrony启动时,它会读取/etc/chrony.conf配置文件中的设置。CentOS 7操作系统上最重要的设置有:server - 该参数可以多次用于添加时钟服务器,必须以server 格式使用。一般而言,你想添加多少服务器,就可以添加多少服务器。复制代码代码如下:server 0.centos.pool.ntp.org server 3.europe.pool.ntp.orgstratumweight - stratumweight指令设置当chronyd从可用源中选择同步源时,每个层应该添加多少距离到同步距离。默认情况下,CentOS中设置为0,让chronyd在选择源时忽略源的层级。driftfile - chronyd程序的主要行为之一,就是根据实际时间计算出计算机增减时间的比率,将它记录到一个文件中是最合理的,它会在重启后为系统时钟作出补偿,甚至可能的话,会从时钟服务器获得较好的估值。rtcsync - rtcsync指令将启用一个内核模式,在该模式中,系统时间每11分钟会拷贝到实时时钟(RTC)。allow / deny - 这里你可以指定一台主机、子网,或者网络以允许或拒绝NTP连接到扮演时钟服务器的机器。复制代码代码如下:allow 192.168.4.5 deny 192.168/16cmdallow / cmddeny - 跟上面相类似,只是你可以指定哪个IP地址或哪台主机可以通过chronyd使用控制命令bindcmdaddress - 该指令允许你限制chronyd监听哪个网络接口的命令包(由chronyc执行)。该指令通过cmddeny机制提供了一个除上述限制以外可用的额外的访问控制等级。复制代码代码如下:bindcmdaddress 127.0.0.1 bindcmdaddress ::1makestep - 通常,chronyd将根据需求通过减慢或加速时钟,使得系统逐步纠正所有时间偏差。在某些特定情况下,系统时钟可能会漂移过快,导致该调整过程消耗很长的时间来纠正系统时钟。该指令强制chronyd在调整期大于某个阀值时步进调整系统时钟,但只有在因为chronyd启动时间超过指定限制(可使用负值来禁用限制),没有更多时钟更新时才生效。使用chronyc你也可以通过运行chronyc命令来修改设置,命令如下:accheck - 检查NTP访问是否对特定主机可用activity - 该命令会显示有多少NTP源在线/离线add server - 手动添加一台新的NTP服务器。clients - 在客户端报告已访问到服务器delete - 手动移除NTP服务器或对等服务器settime - 手动设置守护进程时间tracking - 显示系统时间信息你可以通过使用帮助命令查看完整的命令列表:
- 6MySQL数据库中最基本的函数类型
- 7C# 链接MySQL数据库的实现步骤有哪些?
- 8SQL Server嵌套子查询的正确应用程序
- 9电脑端口错误的常见原因及解决方法(探究电脑端口错误的种类和解决方案)
- 10SQL Server 日期操作全接触的实际操作流程
- 11MySQL 复制设置的实际操作步骤与注意事项
- 12Eufy摄像头漏洞可导致用户隐私被其他用户看到
全站热门
热门文章
- 1以德意灶具——高品质厨房利器(为您打造完美烹饪体验)
- 2MySQL数据库还原的实现步骤
- 3Mitre ATT&CK公布2021年EDR产品评估报告 Bitdefender EDR检测率全球排名第一
- 4巧妙安装MySQL数据库在Ubuntu操作系统中
- 5i33220处理器在2016年的性能评估(i33220的性能表现及其适用领域)
- 6MySQL数据库中正确执行批量更新计数器
- 7解密新型SQL Server无文件持久化恶意程序
- 8新的勒索软件——RegretLocker,可以加密Windows虚拟硬盘
- 9Ubuntu或者Debian系统中update-rc.d命令,是用来更新系统启动项的脚本。这些脚本的链接位于/etc/rcN.d/目录,对应脚本位于/etc/init.d/目录。在了解update-rc.d命令之前,你需要知道的是有关Linux系统主要启动步骤,以及Ubuntu中运行级别的知识。复制代码代码如下:复制代码代码如下:按指定顺序、在指定运行级别中启动或关闭复制代码代码如下:实例:update-rc.d apachectl start 20 2 3 4 5 . stop 20 0 1 6 .解析:表示在2、3、4、5这五个运行级别中,由小到大,第20个开始运行apachectl;在 0 1 6这3个运行级别中,第20个关闭apachectl。这是合并起来的写法,注意它有2个点号,效果等于下面方法:复制代码代码如下:A启动后B才能启动,B关闭后A才关闭复制代码代码如下:启动和关闭顺序为90,级别默认复制代码代码如下:修改LINUX默认启动级别# 0 – 停机(千万不要把initdefault设置为0 )# 1 – 单用户模式# 2 – 多用户,但是没有NFS# 3 – 完全多用户模式# 4 – 没有用到# 5 – X11# 6 – 重新启动(千万不要把initdefault设置为6 )# 对各个运行级的详细解释:0 为停机,机器关闭。1 为单用户模式,就像Win9x下的安全模式类似。2 为多用户模式,但是没有NFS支持。3 为完整的多用户模式,是标准的运行级。4 一般不用,在一些特殊情况下可以用它来做一些事情。例如在笔记本电脑的电池用尽时,可以切换到这个模式来做一些设置。5 就是X11,进到X Window系统了。6 为重启,运行init 6机器就会重启。修改级别vi /etc/inittab把id:3:initdefault:中的3改为5就是默认进入图形界面了
- 10MySQL存储引擎的概念与应用