代码之家  ›  专栏  ›  技术社区  ›  joe

查找具有二进制数据的表

  •  0
  • joe  · 技术社区  · 15 年前

    如何查找所有表都有哪些二进制数据并显示表名?

    5 回复  |  直到 15 年前
        1
  •  1
  •   casperOne    15 年前

    对于MySQL,您需要信息_schema columns表:

    http://dev.mysql.com/doc/refman/5.1/en/columns-table.html

    如果需要查找所有具有二进制列的表,则可以创建一个与信息“架构表”表连接的查询:

    http://dev.mysql.com/doc/refman/5.1/en/tables-table.html

        2
  •  1
  •   Mikael Auno    15 年前

    这很大程度上取决于您使用的数据库。许多数据库(至少mysql和postgresql,可能都有)都有一个名为information_-schema(或类似的数据库)的数据库。这是一个描述数据库结构的数据库,以及所有表、它们的字段以及字段所包含的数据类型。所以这将是一个很好的起点。

        3
  •  1
  •   l0b0    15 年前

    我需要知道哪个数据库,但是这个(或类似的东西)应该在Oracle上工作:

    select *
      from all_tab_columns
     where data_type in ('BLOB', 'RAW')
    ;
    
        4
  •  1
  •   Alex_L    15 年前

    您需要选择系统表(在mssql 2000-sys columns中)或系统管理视图(在mssql 2005或2008-sys.columns中),以查找具有您需要查找的系统类型_id的列,然后查找连接sys.columns和sys.objects by object_id字段的相应表。

        5
  •  1
  •   lexu    15 年前

    您能问一下DBA或DB开发人员吗?

    如果没有,是什么数据库(Oracle、MySQL、Microsoft、Other?)你在用……

    为MySQL数据库编辑

    使用

    select table_schema
         , table_name
         , column_name
         , data_type 
    from information_schema 
    where data_type like '%blob%' 
       or data_type in ('binary','varbinary')