>  기사  >  데이터 베이스  >  shell提取msyql指定数据库下表创建语句为单文件

shell提取msyql指定数据库下表创建语句为单文件

WBOY
WBOY원래의
2016-06-07 16:10:211393검색

dbcn=mysql -h172.16.1.194 -uroot -p123456;db=dsp_ad_center;ii=0;ct=`$dbcn -N -e SELECT COUNT(1) FROM information_schema.TABLES AS t WHERE t.TABLE_SCHEMA = $db AND t.TABLE_TYPE = BASE TABLE ; `;mkdir -p /chenenhui/$dbwhile true;doif [ $ii -

dbcn="mysql -h172.16.1.194 -uroot -p123456";
db=dsp_ad_center;
ii=0;
ct=`$dbcn -N -e " SELECT COUNT(1)  FROM information_schema.TABLES AS t WHERE t.TABLE_SCHEMA = '$db' AND t.TABLE_TYPE = 'BASE TABLE' ; "`;
mkdir -p /chenenhui/$db

while true;
do
if [ $ii -lt $ct ]
then 
p=$ii;
let ii++;
echo p=$p 
echo ii=$ii


table_name=`$dbcn -N -e " SELECT CONCAT( t.TABLE_SCHEMA,'.',t.TABLE_NAME ) FROM information_schema.TABLES AS t  where  t.TABLE_SCHEMA = '$db' AND t.TABLE_TYPE = 'BASE TABLE' limit $p,1;"`;
echo table_name=$table_name
sleep 0;
ss=`$dbcn -N -e "SHOW CREATE TABLE  $table_name ;"`
echo -e "$ss" > /chenenhui/$db/create_table_help.tsv
`$dbcn -e " CREATE TABLE IF NOT EXISTS test.create_table_help 
		( table_name VARCHAR(1500) DEFAULT '',
		table_script VARCHAR(1500) DEFAULT '',
		xh INT AUTO_INCREMENT,PRIMARY KEY(xh)
		) CHARSET = utf8 ;
 truncate table test.create_table_help;
 LOAD DATA LOCAL INFILE '//chenenhui//$db//create_table_help.tsv' INTO TABLE  test.create_table_help CHARACTER SET utf8;"`
ss_script=`$dbcn -N -e "SELECT  concat(CASE WHEN xh = 1 THEN concat('USE ','$db;',char(10) ) ELSE table_name END ,  table_script )  FROM test.create_table_help  ;"`
echo -e "$ss_script" > /chenenhui/$db/$table_name.sql
echo ";" >> /chenenhui/$db/$table_name.sql
echo $table_name
else 
echo '_while finished';
rm /chenenhui/$db/create_table_help.tsv
`$dbcn -N -e "DROP TABLE IF  EXISTS test.create_table_help;"`
exit 0;
fi
done

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.