找到表有二进制数据

时间:2009-07-13 15:24:42

标签: sql mysql database

如何找到所有表中的二进制数据并显示表名?

5 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

您能问DBA还是DB-developper?

如果没有,你在使用什么DB(Oracle,MySql,Microsoft,其他?)..

已编辑MySQL DB

使用

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

答案 2 :(得分:1)

我需要知道哪个数据库,但这个(或类似的东西)应该适用于Oracle:

select *
  from all_tab_columns
 where data_type in ('BLOB', 'RAW')
;

答案 3 :(得分:1)

你需要选择系统表(在msssql 2000 - syscolumns中)或系统管理视图(在mssql 2005或2008 - sys.columns中)来查找你需要查找的system_type_id的列,然后找到相应的表连接sys_columns和sys_objects by object_id字段。

答案 4 :(得分:1)

对于MySql,您需要INFORMATION_SCHEMA COLUMNS表:

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

如果您需要找到所有具有二进制列的表,那么您可以创建一个与INFORMATION_SCHEMA TABLES表连接的查询:

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