基于CentOS的MySQL学习补充三–使用Shell批量创建数据库表
最后更新于:2022-04-01 09:56:38
[本文出处:http://blog.csdn.net/u012377333/article/details/47006087](http://blog.csdn.net/u012377333/article/details/47006087)
接上篇介绍[《基于CentOS的Mysql学习补充二--使用Shell创建数据库》](http://blog.csdn.net/u012377333/article/details/47001007),本文继续探索关于Shell和MySQL的结合使用,我不知道当一个数据库设计完成之后如何快速的创建设计好的数据库表和添加相应基本数据,我目前知道的就是使用Shell和SQL脚本来达到我的目的--快速的、多次的、可重复利用的创建数据库表。
创建一个数据库表的SQL脚本:
~~~
/************************************************************
#Author: chisj
#Date: 2015.7.22
#Describe: Create Database 'SmartCare' Table 'sct_Province'
*************************************************************/
USE SmartCare;
DROP TABLE IF EXISTS `sct_Province`;
CREATE TABLE `sct_Province`(
`ProvinceID` int(11) unsigned NOT NULL AUTO_INCREMENT,
`ProvinceCode` varchar(11) DEFAULT NULL,
`ParentID` varchar(11) DEFAULT NULL,
`ProvinceName` varchar(50) DEFAULT NULL,
`Level` tinyint(1) DEFAULT NULL,
PRIMARY KEY (`ProvinceID`)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
~~~
执行指定目录下所有的SQL脚本(指定目录,多个SQL脚本)的Shell脚本:
~~~
#!/bin/bash
#Author: chisj
#Time: 2015.7.22
#Describe: Create Database Table
#The username of mysql database
USER="root"
#The password of mysql database
PASS="dragonwake"
#The datebase name will be created
DATABASE="SmartCare"
LOCATION=${PWD}
CREATE_TABLE_SCT=create_table_sct_
for table_name in `ls ${LOCATION}/${CREATE_TABLE_SCT}*`
do
mysql -u $USER -p$PASS << EOF > /dev/null
SOURCE ${table_name};
EOF
if [ $? -eq 0 ]; then
echo "Create Table ${table_name} Success!"
fi
done
~~~
其实关于Shell批量创建数据表的方法很多,之前又看到过,可惜没有记住0.0,可见记录很重要哟
所以我还是按照我的思路重新弄了一遍:首先写好创建数据表的SQL脚本是必要的,可以将所有的都写在一个里面(个人觉得不好),也可以按照一个表写一个SQL脚本(目前我市采用这种方法),然后就是在指定目录下面按照指定SQL脚本名进行遍历,找到一个创建数据库表SQL脚本,然后就执行一次。
同样给出CSDN的下载地址:[Shell创建MySQL数据表](http://download.csdn.net/detail/u012377333/8923639)