我正在将PowerShell
中的值插入到MySQL
表中。我在事务中有两个Insert
语句(insertQuery1
、insertQuery2
(。
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
不是任何事务的一部分,它是自动提交的。