2013-04-28 91 views
4

我有一个关于MySQL的问题,并且一直无法找到答案。我知道默认情况下,自动提交在MySQL中处于打开状态。我需要在一个事务中从命令行运行一些更新查询,但我不知道MySQL如何处理它们。如果我有这样的事情:MySQL命令行和事务

mysql -uroot -proot -e 'QUERY 1; QUERY 2; QUERY3' 

将执行作为一个事务或将MySQL的独立自动提交每个语句?我需要确保原子性。

回答

2

管是一个好主意!

echo "START TRANSACTION;" > start.sql 
echo "COMMIT;" > commit.sql 

cat start.sql yourScript.sql commit.sql | mysql -uroot -proot 

cat start.sql yourScript.sql - | mysql -uroot -proot 

等等,你可以根据yourScript

好运气的结果,通过手工提交Ø回滚!