精华内容
下载资源
问答
  • 通过sql命令的方式生成所有的truncate语句并写入到.sql脚本文件中,然后执行脚本即可完成删除操作,并且保留表结构

            常见的删除数据库表中数据的方法是通过delete或者truncate的方法进行删除操作,如果删除的是表中某一条或者部分数据的话适合用delete操作进行删除,如果要删除表中所有的数据的话,适合是同truncate进行删除操作。

            那么问题来了,如果某一个数据库中有很多张表,此时我想将该数据库中所有表中的数据全部删掉,该如何操作呢?

            解决该问题主要分两种情况,如果不需要保留数据库中所有表的结构,那么答案很简单,执行命令drop database 数据库名  即可达到目的。但是如果需要保留该数据库中所有表的结构,只想删除所有表中的数据,又该怎么解决呢?有人会说可以多执行几次truncate操作就OK啦,没错,多执行几次truncate确实可以达到目的,但是,如果要删除的数据库中有很多张表,几十张上百张表,执行上百次truncate操作显然不是好的办法?至此,就是本文要说讲到的办法了。

            删除的办法其实还是执行truncat方法,只是不需要每次手动的输入truncate命令进行删除。通过sql命令的方式生成所有的truncate语句并写入到.sql脚本文件中,然后执行脚本即可完成删除操作,并且保留了表结构。

            生成truncate命令的sql语句为:SELECT CONCAT('TRUNCATE TABLE ',TABLE_NAME,';') FROM information_schema.TABLES WHERE TABLE_SCHEMA='test' into outfile '/tmp/truncate_test.sql';

            然后将生成的.sql脚本拷贝到当前文件夹下面:mv /tmp/truncate_test.sql $current_dir/

            然后执行.sql脚本将数据库中所有表中数据删除:source $current_dir/truncate_test.sql

            说明:

            在进行select....into outfile......操作时,默认只能将文件写入到tmp路径下,可以不用将tmp文件夹下面的.sql脚本移动到当前文件夹下,直接在tmp路径下执行.sql脚本即可。如果要写入到其他路径下,需要给mysql的守护进程赋写操作的权限,最简单的办法是将/etc/selinux路劲下的config配置文件中的SELINUX修改成disabled可以实现写入其他路径下,这里不展开说明。

            结合上一篇博文mysql数据库的备份和恢复,下面贴出一个小脚本的源码和运行截图。使用该脚本进行数据备份和恢复时,源和目的数据库中的所有表结构需要一致,否则执行可能出错。该脚本主要实现mysql数据库的备份和恢复,以及一次删除整个数据库中所有表数据并保留数据表结构。

            运行结果截图说明:

            

            1):备份test数据库中的所有数据

            2):恢复数据

            3):删除数据库test中所有表中的所有数据,并保留表结构

           

            脚本源码:

    #/bin/bash
    while [ 1 ]
    do
        echo "  #############################################" 
        echo "           Quick Backup and Recovery"                   
        echo "    Source and Destination Mysql Must Be Same"
        echo "  #############################################"
        echo "    1) Back up database test"
        echo "    2) Recovery database test"
        echo "    3) Clear data in database test"
        echo "    q) Quit"
        echo -n " Your Option:"
        read option_char
    
        current_dir=$(pwd)
        case ${option_char} in
            "1")
        	    rm -f $current_dir/test_bk.sql
                mysqldump -t -c -uroot -proot test > $current_dir/test_backup.sql
                echo " Database test already backup..."
                ;;
            "2")
                mysql -u root --password='root' -e "
    	    use test
                source $current_dir/test_backup.sql"
                echo " Database test already recovery..."
                ;;
            "3")
                rm -f $current_dir/truncate_test.sql
    	    chmod 777 $current_dir
                mysql -u root --password='root' -e "
                SELECT CONCAT('TRUNCATE TABLE ',TABLE_NAME,';') FROM information_schema.TABLES WHERE TABLE_SCHEMA='test' into outfile '/tmp/truncate_test.sql';"
    	    mv /tmp/truncate_test.sql $current_dir/
        	    mysql -u root --password='root' -e "
    	    use test
    	    source $current_dir/truncate_test.sql"
                echo " Clear data of test successful..."
                ;;
            "q"|"quit"|"exit"|'Q'|"QUIT"|"Quit")
    	    break
    	    ;;
            *)
                echo "your option is invalid, please input again..."
                ;;
        esac
    done



    展开全文
  • 获得所有的表结构删除命令,比如数据库名为open_lmis; select CONCAT('TRUNCATE TABLE ',table_name,' CASCADE',';') from information_schema.tables where TABLE_SCHEMA = 'public' and tabl...

    找了一圈没有看到PostgreSQL有合适的命令,发现有人可以通过脚本来实现

    1. 获得所有的表结构删除命令,比如数据库名为open_lmis;
    select CONCAT('TRUNCATE TABLE ',table_name,' CASCADE',';') from information_schema.tables where TABLE_SCHEMA = 'public' and table_type = 'BASE TABLE';
    
    1. 将上面的内容输出到 sql 脚本中,然后执行脚本

    参考文档

    1. PostgreSQL清空表并保留表结构、清空数据库还原数据库为新建时的状态的方法 - 韶光 - CSDN博客
    2. 清空数据库数据保留表结构 - summer的博客 - CSDN博客
    展开全文
  • 删除表数据 4.开启触发器 5.开启约束 CREATE PROCEDURE proc_deleteDateSql /* 生成清除数据库表数据的脚本方法分享 */ AS EXEC sp_MSForEachTable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL' EXEC sp_MSFor...

    实现思路: 1.禁用所有约束,外键 2.禁用所有触发器 3.删除表数据 4.开启触发器 5.开启约束

    CREATE PROCEDURE proc_deleteDateSql
     /*
      生成清除数据库表数据的脚本方法分享
     */
    AS
    EXEC sp_MSForEachTable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL'
    EXEC sp_MSForEachTable 'ALTER TABLE ? DISABLE TRIGGER ALL'
    EXEC sp_MSForEachTable 'delete from ?'
    EXEC sp_MSForEachTable 'ALTER TABLE ? CHECK CONSTRAINT ALL'
    EXEC sp_MSForEachTable 'ALTER TABLE ? ENABLE TRIGGER ALL'
    EXEC sp_MSFOREACHTABLE 'SELECT * FROM ?'
    GO
    
    
    --生成脚本信息
    exec proc_deleteDateSql 
    
    go
    
    drop proc  proc_deleteDateSql 
    go

    转载于:https://www.cnblogs.com/lxss/p/10064558.html

    展开全文
  • 在Mysql 中删除数据以及数据表非常的容易,但是需要特别小心,因为一旦删除所有数据都会消失。 删除数据 删除表内数据,使用delete关键字。... 删除数据表内数据以及表结构 只删除表内数据,保留表结构 dro
  • Mysql清除所有表数据保留表结构

    千次阅读 2018-05-02 15:16:28
    先(右键)新建一个新的数据库,用于之后导入表结构2.右键需要导入表结构的数据库(如图中的hdw)—— 选择‘将数据库复制到不同主机/数据库’3.如图最后就能在这个new的数据库中看到仅有这些表的字段结构而没有数据...

    我用的是SQLyog这个数据库管理工具

    步骤如下:

    1.先(右键)新建一个新的数据库,用于之后导入表结构


    2.右键需要导入表结构的数据库(如图中的hdw)—— 选择‘将数据库复制到不同主机/数据库’


    3.如图


    最后就能在这个new的数据库中看到仅有这些表的字段结构而没有数据了


    展开全文
  • --获得所有删除表数据语句 SELECT 'DELETE FROM ['+OBJECT_SCHEMA_NAME(object_id)+'].['+OBJECT_NAME(object_id)+'] ' FROM sys.tables WHERE is_ms_shipped=0;   --解除独占 alter database pr_dev_...
  • DELETE FROM TxtData; //删除表TxtData数据 update sqlite_sequence set seq=0 where name='TxtData'//更新主键从1开始  
  • 一般有两种方式: ①:delete from table_name; 例:delete from student; ②:truncate table table_name; 例:truncate table student;
  • mysql进阶(二十一)删除表数据

    万次阅读 2016-01-12 19:55:36
    在MySQL中有两种方法可以删除数据,一种是DELETE语句,另一种是TRUNCATETABLE语句。DELETE语句可以通过WHERE对要删除的记录进行选择。而使用TRUNCATETABLE将删除中的所有记录。因此,DELETE语句更灵活。 如果要...
  • 保留表结构清空表数据

    千次阅读 2018-07-23 17:54:13
    TRUNCATE TABLE “表格名”;
  • mysql删除表数据几种情况

    万次阅读 2018-09-01 00:29:07
    1、drop table table_name: 删除表全部数据表结构,立刻释放磁盘...2、truncate table table_name: 删除表全部数据保留表结构,立刻释放磁盘空间 ,不管是 Innodb 和 MyISAM; 实例,删除学生表: truncate t...
  • 1、数据存入Mysql 几种模式  默认为SaveMode.ErrorIfExists模式,该模式下,如果数据库中已经存在该,... SaveMode.Overwrite 重写模式,其实质是先将已有的及其数据全都删除,再重新创建该,最后插入新的...
  •   ORACLE数据库除了可以保存永久外,还可以建立...这些临时用来保存一个会话SESSION的数据,或者保存在一个事务中需要的数据。当会话退出或者用户提交commit和回滚rollback事务的时候,临时数据自动清空...
  • 数据结构——从顺序删除重复的元素

    千次阅读 多人点赞 2018-11-10 17:18:57
    问题描述:设计一个算法从顺序删除重复的元素,并使剩余元素间的相对次序保持不变。 例如:原顺序为{4 2 8 4 2 1 2 1 3 5 2},执行该算法后,顺序为:{4 2 8 1 3 5}。 另外,顺序的初始值通过调用算法...
  • 1)用数据泵导出这个用户的表结构(expdp ..... content=metadata_only;) 2)级联删除这个用户 3)重建这个用户 4)导入之前导出的dmp文件,还原表结构。 第二种:用truncate语句  1)禁掉主...
  • TRUNCATE:删除表中的全部数据保留表结构 (自动提交(COMMIT)) DROP:删除数据表结构 (自动提交(COMMIT)) (数据无价、删除需谨慎!) DELETE: 删除满足条件的数据 --删除某个条件的数据 DELETE FROM ...
  • declare @name varchar(200)declare @strSql varchar(500)declare C cursor for Select name From sysobjects Where xtype=Uopen c fetch next from c into @name while @@FETCH_STATUS=0
  • 查阅了一些资料,很多人的意见是备份一个只包含数据库表结构的backup文件,然后删掉数据库,然后恢复。 正在我的实践中是有点问题的,因为使用数据库的人不止我一个,人家数据库不让我删除。而且我执行的时候出了很...
  • 说到删除表数据的关键字,大家记得最多的可能就是delete了 然而我们做数据库开发,读取数据库数据.对另外的两兄弟用得就比较少了 现在来介绍另外两个兄弟,都是删除表数据的,其实也是很容易理解的 老大------drop 出没...
  • 数据结构中顺序的插入与删除

    千次阅读 2019-09-16 21:34:16
    顺序插入算法思路 如果插入位置不合理,抛出异常。 如果线性表的长度大于数组的长度,则抛出异常或者动态增加容量。 从最后一个元素遍历到第i个,.../* 操作结果:在L中第i个位置之前插入新的数据元 素e,L的长度...
  • 方式一:仅删除表中数据,保留表结构 truncate table 表名; (truncate用于删除所有的行,这个行为在hive元存储删除数据是不可逆的) 或 delete from 表名 where 1 = 1 ; (delete用于删除特定条件下的行,使用where...
  • Hive删除表数据

    万次阅读 2019-07-12 11:40:44
    方式一:仅删除表中数据,保留表结构 truncate table 表名; (truncate用于删除所有的行,这个行为在hive元存储删除数据是不可逆的) 或delete from 表名 where 1 = 1 ; (delete用于删除特定条件下的行,使用...
  • 编写一个算法,使将A和B中所有元素组成一个新的从小到大的有序顺序C的算法,要求重复的元素只保留一个。 思路: 1.如果A的数据小于等于B的数据,则将A存入,否则存入B。保证存入的数据总是小于等于还未存入的...
  • Hive中删除表数据的几种方式

    千次阅读 2020-11-01 11:15:06
    仅删除表中数据,保留表结构 方法一 truncate table 表名;(truncate用于删除所有的行,这个行为在hive元存储删除数据是不可逆的) truncate 不能删除外部表!因为外部表里的数据并不是存放在Hive Meta store中 ...
  • 数据结构 - 顺序

    千次阅读 2020-05-30 16:55:22
    数据结构 - 顺序基本实现思想
  • 使用触发器 CREATE TRIGGER '触发器名称' BEFORE DELETE ON '删除的主名称' FOR EACH ROW BEGIN INSERT INTO '备份名称' SELECT * FROM '主名称' where id=old.id; END
  • C++数据结构——链表

    千次阅读 2018-06-27 22:03:59
    C++数据结构——链表参考博客:(1)实践:https://www.cnblogs.com/renyuan/archive/2013/05/21/3091524.html(2)实践:https://blog.csdn.net/lg1259156776/article/details/47021505(3)理论:数据结构(二)...
  • 文章目录1、为重命名(了解)1.1 范例1:将member更名为person2、数据表删除(重点)2.1 范例1:删除emp303、闪回技术(理解) ????大家好!我是近视的脚踏实地,这篇文章主要是来讲学习Oracle中常用的数据...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 479,488
精华内容 191,795
关键字:

删除表数据保留表结构