Mysql - shell操控Mysql数据库的方法(delete和truncate解释)

目录

shell命令操控Mysql数据库的方法:

方法一:使用here document方法

示例:shell在Mysql里创建一共库,然后新建一共表格student,然后插入一行数据,最后查询显示出来我们插入的数据的表。

 方法二:使用-e选项执行sql语句

Mysql删除命令:delete和truncate的区别: 


shell命令操控Mysql数据库的方法:

方法一:使用here document方法

示例:shell在Mysql里创建一共库,然后新建一共表格student,然后插入一行数据,最后查询显示出来我们插入的数据的表。

我们可以进入Mysql里查看是否完成库和表的建立

 

如上图所示,我们成功的创建了test1表格。

同理我们可以将上面的步骤写成脚本。

脚本:

#!/bin/bash

mysql -uroot -p'123456'   <<EOF
create database test2;
use test2;
create table student(id int, name varchar(10));
insert into student(id,name) values(1,'李四'),(2,'张三');
select * from student;
EOF
echo ”完成表格的创建,查询的结果如上“

 方法二:使用-e选项执行sql语句

执行一条sql语句:

 执行多条sql语句:

Mysql删除命令:delete和truncate的区别: 

我们先复制一共表格,用于删除实验使用:

我们先使用delete 删除所有的数据

我们使用truncate 删除所有的数据

 

mysql> -- 切换到目标数据库 mysql> USE board_db; Database changed mysql> mysql> -- 生成并执行 TRUNCATEDELETE 所有表的 SQL mysql> SET FOREIGN_KEY_CHECKS = 0; -- 禁用外键检查 Query OK, 0 rows affected (0.00 sec) mysql> mysql> -- 构造 TRUNCATE 每个表的语句,并拼接成一条可执行的命令 mysql> SELECT GROUP_CONCAT( -> CONCAT('TRUNCATE TABLE `', table_name, '`') -> SEPARATOR '; ' -> ) INTO @truncate_sql -> FROM information_schema.tables -> WHERE table_schema = 'board_db'; Query OK, 1 row affected (0.07 sec) mysql> mysql> -- 输出生成的 SQL(用于调试) mysql> SELECT @truncate_sql; +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | @truncate_sql | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | TRUNCATE TABLE `ai_appoperationlogs`; TRUNCATE TABLE `ai_appreportrecords`; TRUNCATE TABLE `ai_appsortingtaskboxes`; TRUNCATE TABLE `ai_appsortingtaskimages`; TRUNCATE TABLE `ai_appsortingtaskitems`; TRUNCATE TABLE `ai_appsortingtasks`; TRUNCATE TABLE `ai_appsortingtaskskus`; TRUNCATE TABLE `ai_devicestatus`; TRUNCATE TABLE `b_dock`; TRUNCATE TABLE `b_orderext`; TRUNCATE TABLE `b_outstockorder`; TRUNCATE TABLE `b_outstockorderitem`; TRUNCATE TABLE `b_outstockorderitemhis`; TRUNCATE TABLE `b_salesorder`; TRUNCATE TABLE `b_salesorderitem`; TRUNCATE TABLE `b_sortlog`; TRUNCATE TABLE `b_standarddockmid`; TRUNCATE TABLE `b_warehouse`; TRUNCATE TABLE `b_waybill`; TRUNCATE TABLE `b_waybillitem` | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1 row in set (0.00 sec) mysql> mysql> -- 执行清空操作 mysql> PREPARE stmt FROM @truncate_sql; ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'TRUNCATE TABLE `ai_appreportrecords`; TRUNCATE TABLE `ai_appsortingtaskboxes`; T' at line 1 mysql> EXECUTE stmt; ERROR 1243 (HY000): Unknown prepared statement handler (stmt) given to EXECUTE mysql> DEALLOCATE PREPARE stmt; ERROR 1243 (HY000): Unknown prepared statement handler (stmt) given to DEALLOCATE PREPARE mysql> mysql> SET FOREIGN_KEY_CHECKS = 1; -- 恢复外键检查 Query OK, 0 rows affected (0.00 sec)
最新发布
10-18
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值