C++ 技术中心

   :: 首页 :: 联系 ::  :: 管理
  160 Posts :: 0 Stories :: 87 Comments :: 0 Trackbacks

公告

郑重声明:本BLOG所发表的原创文章,作者保留一切权利。必须经过作者本人同意后方可转载,并注名作者(天空)和出处(CppBlog.com)。作者Email:coder@luckcoder.com

留言簿(27)

搜索

  •  

最新随笔

最新评论

评论排行榜

方案1
mysql -uuser -ppasswd -e"insert LogTable values()"  

优点:语句简单
缺点:支持的sql相对简单


方案2

准备一个sql脚本,名字为update.sql,例如:
CREATE TABLE `user` (  
  `id` 
varchar(36NOT NULL COMMENT '主键',  
  `username` 
varchar(50NOT NULL COMMENT '用户名',  
  `password` 
varchar(50NOT NULL COMMENT '用户密码',  
  `createdate` date 
NOT NULL COMMENT '创建时间',  
  `age` 
int(11NOT NULL COMMENT '年龄',  
  
PRIMARY KEY  (`id`)  
) ENGINE
=MyISAM DEFAULT CHARSET=utf8 COMMENT='用户信息表';  
DROP TABLE IF EXISTS `visit_log`;  
CREATE TABLE `visit_log` (  
  `id` 
varchar(36character set utf8 NOT NULL,  
  `type` 
int(11NOT NULL,  
  `content` 
text character set utf8 NOT NULL,  
  `createdate` date 
NOT NULL,  
  
PRIMARY KEY  (`id`)  
) ENGINE
=MyISAM DEFAULT CHARSET=latin1 COMMENT='访问日志';  

新建一个update_mysql.sh,内容如下:
use chbdb;  
source update.sql

然后执行如下命令:
cat update_mysql.sh | mysql --user=root -ppassword  

优点:支持复杂的sql脚本
缺点:
1> 需要两个文件:update.sql和update_mysql.sh
2> 一旦中间出错,之后脚本就不会执行,例如:
如果第一张表已经存在,则会报出如下异常:
ERROR 1050 (42S01) at line 1 in file: 'update.sql': Table 'user' already exists
然后脚本退出,第二张表也就无法创建。


方案3
新建一个shell脚本,格式如下:
#!/bin/bash   
mysql -u* -h* -p* <<EOF  
Your SQL script.  
EOF  

优点:
1>支持复杂的sql脚本
2>无需其它额外文件
缺点:
1> 表名、字段不能使用单引号,需要修改原有sql语句
2> 一旦中间出错,之后脚本就不会执行,例如:
如果第一张表已经存在,则会报出如下异常:
ERROR 1050 (42S01) at line 1 in file: 'update.sql': Table 'user' already exists
然后脚本退出,第二张表也就无法创建。


方案4
准备一个sql脚本,如update.sql,然后执行如下命令:

mysql -uroot -ppassword < update.sql  

优点:支持复杂的sql脚本
缺点:
1> 一旦中间出错,之后脚本就不会执行,例如:
如果第一张表已经存在,则会报出如下异常:
ERROR 1050 (42S01) at line 1 in file: 'update.sql': Table 'user' already exists
然后脚本退出,第二张表也就无法创建。
 
 

posted on 2012-03-28 10:58 C++技术中心 阅读(1662) 评论(1)  编辑 收藏 引用 所属分类: MYSQL

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理