关于mysql存储过程使用 check table
目前碰到个问题,断电后mysql表经常损坏,想做个自动修复的批处理。
1 mysql的my.INI设置自动修复,根本不起作用。
2 myisamcheck 工具也只能对每个表做修复,不能批量,linux里面支持*.*文件,windows不行。
只好写个循环,获得所有的表名,先check table,如果不是ok的,repair table。
但是发现存储过程里面根本没法得到 check table 的结果。
有什么办法吗??
现在只好在c代码里面循环获得check table的结果。
mysqlcheck
做个函数有返回值的
mysqlcheck 是自带的 exe,装mysql的时候我们只装了mysqld.exe,没其他的。。。。。。
你只能通过脚本程序获取到所有表名然后再逐一 check 了。没有什么好办法。
你的 mysql/bin 中应该有很多MYSQL提供的工具。
windows 下的myisamcheck 能对文件进行批量更改啊
myisamcheck -e 先check
myisamcheck -r -q 再快速修复
最重要的是看报什么错
出现outmemory error 的话
就要创建新的MYI文件
SQL code:
$ myisamchk -e "C:\Documents and Settings\All Users\Application Data\MySQL\MySQL Server 5.1\data\test\*.MYI"
批量是没问题的
我们在部署的时候对mysql重新定制过,只使用myisam表类型,工具等其他没必要的都去掉了。
嗯,看来只能把mysqlcheck加到定制包里面去。
但是真的没办法在 存储过程中获取 check table 和show tables这样的命令的
相关问答:
我是用mysql自带的C API
if(mysql_real_connect(&mysql,"125.0.0.108","root","root","home",3306,NULL,0))
{
AfxMessageBox("数据库连接失败") ......
SELECT a.tguildname ,SUM(a.ct) + if (SUM(b.ct) IS NULL ,0,SUM(b.ct)) from (
SELECT tg.tguildname,c.cid, (
cf.fbb + cf.fgjbb + cf.fjybb + cf.fqb + cf.fgjqb + cf.fjyqb + cf.fqib + cf. ......
我现在学习MYSQL,问下mysql储存过程如何建立和使用,最好写成$sql="sql语句",$re=mysql_query($sql);谢谢
建议你先自己看一下文档中的例子。
http://dev.mysql.com/doc/refman/5.1/zh/stored-pro ......
select * from table where '123456789' like '%'+字段表+'%'
这句sql在sqlserver下通过,在mysql下有报错,mysql下如何实现这样的查询呢
SQL code:
select * from table whe ......
如题 数据是BLOB类型 怎么才能修改其中的某些值
BLOB中存入的是什么内容?
假设字段memo为blob类型,在该字段的值前面增加字符串'add--'
则操作语句如下:
SQL code:
update tb_blog set memo=concat( ......