PowerShell到MySQL:COMMIT之后的SQL语句也被提交



我正在将PowerShell中的值插入到MySQL表中。我在事务中有两个Insert语句(insertQuery1insertQuery2(。

insertQuery1之后有COMMIT,因此提交了query_1中的更改,但在insertQuery2之后没有COMMIT,但也提交了query_2中的更改。有人能告诉我为什么query_2中的更改也被提交,即使之后没有COMMIT语句。

如果我不使用COMMIT,那么两个查询都不会提交。

$oConnection = New-Object MySql.Data.MySqlClient.MySqlConnection($sConnectionString)
try
{

$oConnection.Open()
$oMYSQLCommand = New-Object MySql.Data.MySqlClient.MySqlCommand

$oMYSQLTransaction = $oConnection.BeginTransaction();
$oMYSQLCommand.Connection=$oConnection
$oMYSQLCommand.Transaction = $oMYSQLTransaction;

$insertQuery1 ='INSERT into `temp_schema`.`temp_table` (`temp_col`) VALUES('+'"'+$temp_val1+'"' +')'
$oMYSQLCommand.CommandText=$insertQuery1 
$iRowsAffected=$oMYSQLCommand.ExecuteNonQuery()

$oMYSQLTransaction.Commit();
Start-Sleep -Seconds 10      
$insertQuery2 ='INSERT into `temp_schema`.`temp_table` (`temp_col`) VALUES('+'"'+$temp_val2+'"' +')'
$oMYSQLCommand.CommandText=$insertQuery2
$iRowsAffected=$oMYSQLCommand.ExecuteNonQuery()
}
catch{
write-warning ("Error: "+$Error[0].ToString())
}
finally{
$oMySqlCommand.Connection.Close()
}

好的,我意识到Transaction是在COMMIT之后完成的,由于insertQuery2不是任何事务的一部分,它是自动提交的。

最新更新