`
longforfreedom
  • 浏览: 198818 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

用SQL生成SQL

阅读更多

    遇到需要批量删除数据中的表的问题,二十来个表,手写DROP TABLE 太麻烦了,虽然现在有很多前端工具都有类似功能,但也需要点N次鼠标后才能完成,要是有外键更麻烦。可以用Python等脚本完,但我想最简单的还是用SQL生 成DROP TABLE语句,在此分享一下。
    用SQL生所DROP TABLE 语句的思路是,只要能从SELECT语句中得到表名即可用以下得到需要的删除脚本
    select concat('DROP TABLE ', tablename) from ........
   

    在MySQL中的
information_schema.tables中得到所有的表名, 所在通过加上数据库条件,就能得到要操作的数据库中的所有表
    show tables也可以得到当前数据库的所有表,但不能(或许是我不知道 ) 用于select中,如果你知道,麻烦告诉我一声


    以下语句生成删除test库中的所有表的脚本并保存在c:/drop.sql中
    

mysql>SELECT  
                      CONCAT('drop table ', table_name,';')  
                      INTO OUTFILE 'c:/drop.sql' 
            FROM 
                     information_schema.tables s 
            WHERE 
                     s.TABLE_SCHEMA='test';

 


drop.sql中的内容类似:

 

    drop table b;
    drop table c;
    drop table m;

 

    
    然后执行删除脚本:
    
        
  mysql>source  c:/drop.sql

     以上例子中的表之间没有主外键约束可以直接删除,如果有主外键约束,可以先删除把外键约束删除,Mysql中约束信息在
    information_schema.TABLE_CONSTRAINTS 表中,也可以生成删除外键的语句
    
     “ alter table
          tablename
       drop
          foreign key foreign-key-name; ”

比如JBPM的表有很多外键约束,可以用以下SQL生成删除JBPM数据库中的所有外键


SELECT
    CONCAT('alter table ',fk.TABLE_NAME, ' drop foreign key ', fk.CONSTRAINT_NAME,';')
FROM
    information_schema.TABLE_CONSTRAINTS fk
WHERE
    fk.CONSTRAINT_SCHEMA='JBPM' AND fk.CONSTRAINT_TYPE='foreign key';


 


执行以上SQL可以生成删除外键的外键的脚本drop_fk.sql

再生成删除表的脚本:


SELECT
    CONCAT('drop table ',t.TABLE_NAME,';')
    INTO OUTFILE 'c:/drop.sql'
FROM
    information_schema.TABLES t
WHERE t.table_schema='jbpm'; 

 


执行删除:


SQL> source c:/drop_fk.slq
SQL> source c:/drop.sql

 


Oracle中可以

    

select 'DROP TABLE' || table_name || ';' from user_tables;

生成删除表的脚本

 

oracle不熟悉,才开始学习,以后补上。

1
0
分享到:
评论
1 楼 longforfreedom 2010-03-04  
自己回复一个,怎么多了一串“<span style="font-size: small;">”编辑的时候又看不到,相删除删除不了。

相关推荐

    Java开发的sql生成器

    - **ORM(Object-Relational Mapping)**:如Hibernate或MyBatis,它们提供更高层次的抽象,可以与SQL生成器结合使用,将Java对象和数据库表映射起来,简化数据操作。 - **模板引擎**:如FreeMarker或Velocity,用于...

    SQL代码生成器_sql代码生成_sqlserver_

    首先,SQL代码生成器的核心功能是根据数据库结构自动生成SQL语句。这包括但不限于创建表、索引、视图、存储过程和触发器的语句,以及插入、更新、删除等DML操作。它通过解析数据库模式,提取相关信息,然后根据预...

    sql语句万能生成器,sql语句,sql语句生成

    SQL语句生成器是一种软件工具,它能够帮助开发者自动生成SQL语句,大大减轻了编写和调试的工作负担。这种工具通常包含各种功能,如:根据数据库结构自动生成SELECT、INSERT、UPDATE、DELETE语句,支持JOIN操作,生成...

    易语言的SQL生成器

    理解易语言的基本语法和命令是使用SQL生成器的前提。 2. **SQL语句构造**:SQL语句主要包括SELECT、INSERT、UPDATE、DELETE四大类型,以及CREATE、ALTER、DROP等用于数据库对象管理的语句。SQL生成器能帮助用户快速...

    mybatis-sql生成器

    在使用MyBatis-SQL生成器时,首先要理解其核心组件和工作原理。该生成器通过读取配置文件(通常为generatorConfig.xml),了解数据源、目标项目路径、生成策略等信息。配置文件中可以定义数据库连接信息,包括URL、...

    mybatis自动sql生成插件源码

    在实际应用中,要正确使用这个插件,你需要将其配置到MyBatis的配置文件中,指定拦截的Mapper接口或注解,然后在Mapper接口的方法上使用定义的注解,即可享受自动SQL生成带来的便利。同时,由于插件适配的是MyBatis ...

    根据数据库sql生成java代码代码生成器

    1、本地执行代码生成工具,可生成controller、service、...3、可按照资源中提供的建表sql导入到数据库,然后双加start.bat,即可在上方配置的outdir目录中找到生成的代码 4、复制代码到项目目录修修改改即可使用

    sql生成ER图PD.docx

    标题中的"sql生成ER图PD.docx"表明这是一个关于使用SQL数据来创建实体关系(ER)图的文档,可能详细介绍了如何将数据库结构可视化。ER图是数据库设计中常用的一种工具,它用图形方式展示了数据库中实体、属性以及...

    实体类&SQL生成工具

    实体类和SQL生成工具是一种高效开发辅助工具,它能够帮助程序员快速地生成各种编程语言(如VB、C#、Java)中的实体类,并自动生成对应的SQL语句,极大地提高了开发效率,减少了手动编写代码的工作量。 实体类是面向...

    sql生成器--修正版

    使用修正版的SQL生成器,开发者可以更放心地依赖其自动生成的SQL语句,减少了手动编写和检查带来的潜在风险和错误。同时,这也提升了代码的可读性和维护性,因为注释的引入使得SQL语句更加易懂,方便团队协作。 ...

    SQL语名生成器

    ADO(ActiveX Data Objects)是微软开发的一种数据访问接口,它允许程序通过OLE DB或ODBC与各种数据库进行通信,因此,这款SQL生成器采用ADO方式的数据库连接,意味着它可以无缝地与多种数据库进行交互。 SQL...

    可视化sql查询语句生成器

    在压缩包文件“Sql生成”中,可能包含有各种示例查询、配置文件、帮助文档或教程,帮助用户更好地理解和使用这种工具。通过学习和实践,用户不仅可以提高SQL查询的技能,还能提升数据处理的能力,这对于任何与数据库...

    ibatis sql生成工具

    Ibatis SQL生成工具是一款专为开发者设计的实用应用程序,它能够极大地提高开发效率,尤其是在处理大量数据库操作时。Ibatis,作为一个轻量级的持久层框架,与传统的ORM(对象关系映射)工具相比,提供了更为灵活的...

    SQL自动生成JSON数据.docx

    本文主要讲述如何使用SQL语言自动生成JSON数据,并将其存储到数据表中或用于前端程序调用。 一、什么是JSON数据? JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于...

    excel生成sql脚本

    "Excel生成SQL脚本"这个主题涉及到如何利用Excel的功能来自动化创建SQL语句,这对于数据库管理员和数据分析师来说是一个非常实用的技巧。 首先,我们需要理解表结构说明。在“表结构说明及SQL生成文档.xls”中,...

    sql生成器--含注释

    例如,当使用SQL生成器来插入数据时,它可能会创建如下带注释的INSERT语句: ```sql -- 插入新的用户记录 INSERT INTO `users` (username, email, created_at) VALUES ('John Doe', 'john.doe@example.com', NOW()...

    嵌入式SQL生成器

    嵌入式SQL生成器是一种工具,它极大地简化了程序员在应用程序中使用SQL的过程。嵌入式SQL,全称为Embedded SQL,是将SQL语句直接嵌入到主语言(如C、C++、Java等)中,使得程序可以直接操作数据库而无需通过独立的...

    自动生成SQL语句_C#_sql_

    本文将深入探讨如何在C#中自动生成SQL语句,以提高开发效率并减少手动编写SQL可能导致的错误。 一、Entity Framework与自动SQL生成 1. Entity Framework(EF)是微软提供的一个开源ORM(对象关系映射)框架,它...

    我的sql生成器,还是挺好用的

    在IT领域,SQL生成器通常被数据库管理员、开发者以及数据分析人员使用,以简化他们的工作流程,减少手动编写SQL语句的时间和错误。 在压缩包的文件名列表中,我们可以看到以下几个文件: 1. My_Delphi51.bpl:这是...

    通过sqlserver生成程序文档

    SqlSpec很可能是一个第三方工具,它的功能就是自动生成SQL Server数据库的规格文档。用户安装此软件后,可以利用它来解析SQL Server 2005中的数据库结构,并将其转换成具有超链接的HTML文档,从而方便团队成员理解、...

Global site tag (gtag.js) - Google Analytics