数据库

首页 » 常识 » 问答 » mysql批量语句,怎么保证操作都成功
TUhjnbcbe - 2025/1/17 19:50:00

今天就讨论以下几个数据批量操作的问题

在一个批量操作的sql中,如果一个失败,其他的会怎么样呢对于大数据表,线上更新而不影响用户使用事务与锁的关系建立测试表member#MYSQL#表

表结构

1.在一个批量操作的sql中,如果一个失败,其他的会怎么样呢

第一种情况:先看一下,多条语句没有事务控制的代码

$conn=Yii::$app-db1;

$sql1=insertintomember(name,password)values(yang,vincent);

$sql2=insertintomember(name,password,gender)values(yang,vincent1);  

$conn-createCommand($sql1)-execute();  

$conn-createCommand($sql2)-execute();

执行结果怎么呢,下面我们来看看,结果大家也猜得到,报错了

SQLSTATE[21S01]:Insertvaluelistdoesnotmatchcolumnlist:Columncountdoesntmatchvaluecountatrow.....

字段不匹配,但是,数据表第一条已经插入成功,只是第二条语句出错了!

第二种情况:多条语句,有事务控制

测试代码如下:

$conn=Yii::$app-db1;

$transaction=$conn-beginTransaction();

try{

$sql1=insertintomember(name,password)values(yang,vincent);

$sql2=insertintomember(name,password,gender)values(yang,vincent1);    

$conn-createCommand($sql1)-execute();    

$conn-createCommand($sql2)-execute();    //...executingotherSQLstatements...    

$transaction-

1
查看完整版本: mysql批量语句,怎么保证操作都成功