提问者:小点点

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


我正在将PowerShell中的值插入MySQL表中。 事务中有2个insert语句(insertQuery1insertQuery2)。

insertQuery1之后有commit,因此提交了query_1中的更改,但在insertQuery2之后没有提交,但也提交了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()

}

共1个答案

匿名用户

好的,我意识到事务是在commit之后完成的,并且由于insertquery2不是任何事务的一部分,所以它是自动提交的。