我正在将PowerShell
中的值插入MySQL
表中。 事务中有2个insert
语句(insertQuery1
,insertQuery2
)。
在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()
}
好的,我意识到事务
是在commit
之后完成的,并且由于insertquery2
不是任何事务的一部分,所以它是自动提交的。