把数据库转存为excel
但是数据库字段太多 如果一个一个照着输 能把我弄疯
发现使用内置表INFORMATION_SCHEMA. COLUMNS来查询,任何表中的任何一列都会在此表中对应一行记录,那么可以用它来统一查询
首先生成要导出的表结构。
由于我只需要这几个字段 所以就只查了这些,如果自己有其他需要的字段 可先查* 查出所有字段 再把自己需要的字段填上去即可
注: UCASE() 函数 是把字母全部大写
SELECT
COLUMN_COMMENT as 字段名称,
UCASE(COLUMN_NAME) as 字段,
UCASE(COLUMN_TYPE) as 数据类型,
if(IS_NULLABLE='YES','是','否') as 是否必填,
COLUMN_COMMENT as 含义
FROM
INFORMATION_SCHEMA. COLUMNS
WHERE
table_schema = '数据库名称'
AND
table_name = '数据表名称'
这样就查出需要的表结构了
那么再根据 mysql自带的导出功能 INTO OUTFILE
SELECT '字段名称','字段','数据类型','是否必填','含义'
UNION
SELECT
COLUMN_COMMENT as 字段名称,
UCASE(COLUMN_NAME) as 字段,
UCASE(COLUMN_TYPE) as 数据类型,
if(IS_NULLABLE='YES','是','否') as 是否必填,
COLUMN_COMMENT as 含义
FROM
INFORMATION_SCHEMA. COLUMNS
WHERE
table_schema = 'cs1'
AND
table_name = 'sys_user'
INTO OUTFILE 'E:/aa.xls' CHARACTER set GB2312
这里如果出现 The MySQL server is running with the --secure-file-priv option so it cannot execute this statement 错误
报错原因
mysql文件的导入和导出路径有默认的设置,即 secure-file-priv,当传入的csv文件路径与默认的路径冲突时就会报错。
secure-file-priv的值有三种情况:
secure_file_prive=null ––限制mysqld 不允许导入导出
secure_file_priv=/path/ – --限制mysqld的导入导出只能发生在默认的/path/目录下
secure_file_priv=’’ – --不对mysqld 的导入 导出做限制
可以查看secure-file-priv设置:
show variables like ‘%secure%’;
那么 需要修改my.ini文件 my.ini文件都在数据库安装目录下
打开my文件,ctrl+f找到关键字secure,修改原路径:
把原路径用#注释掉,改为自定义路径,注意路径用的是斜杠,不是反斜杠
我将路径设置成空,意味着不对mysqld 的导入 导出做限制
设置secure为空即可导出
secure-file-priv=""
搞定!