75 lines
2.0 KiB
PHP
75 lines
2.0 KiB
PHP
<?php
|
|
|
|
namespace Amp\Sql;
|
|
|
|
use Amp\Promise;
|
|
|
|
interface Transaction extends Executor
|
|
{
|
|
const ISOLATION_UNCOMMITTED = 0;
|
|
const ISOLATION_COMMITTED = 1;
|
|
const ISOLATION_REPEATABLE = 2;
|
|
const ISOLATION_SERIALIZABLE = 4;
|
|
|
|
/**
|
|
* @return int
|
|
*/
|
|
public function getIsolationLevel(): int;
|
|
|
|
/**
|
|
* @return bool True if the transaction is active, false if it has been committed or rolled back.
|
|
*/
|
|
public function isActive(): bool;
|
|
|
|
/**
|
|
* Commits the transaction and makes it inactive.
|
|
*
|
|
* @return Promise<CommandResult>
|
|
*
|
|
* @throws TransactionError If the transaction has been committed or rolled back.
|
|
*/
|
|
public function commit(): Promise;
|
|
|
|
/**
|
|
* Rolls back the transaction and makes it inactive.
|
|
*
|
|
* @return Promise<CommandResult>
|
|
*
|
|
* @throws TransactionError If the transaction has been committed or rolled back.
|
|
*/
|
|
public function rollback(): Promise;
|
|
|
|
/**
|
|
* Creates a savepoint with the given identifier.
|
|
*
|
|
* @param string $identifier Savepoint identifier.
|
|
*
|
|
* @return Promise<CommandResult>
|
|
*
|
|
* @throws TransactionError If the transaction has been committed or rolled back.
|
|
*/
|
|
public function createSavepoint(string $identifier): Promise;
|
|
|
|
/**
|
|
* Rolls back to the savepoint with the given identifier.
|
|
*
|
|
* @param string $identifier Savepoint identifier.
|
|
*
|
|
* @return Promise<CommandResult>
|
|
*
|
|
* @throws TransactionError If the transaction has been committed or rolled back.
|
|
*/
|
|
public function rollbackTo(string $identifier): Promise;
|
|
|
|
/**
|
|
* Releases the savepoint with the given identifier.
|
|
*
|
|
* @param string $identifier Savepoint identifier.
|
|
*
|
|
* @return Promise<CommandResult>
|
|
*
|
|
* @throws TransactionError If the transaction has been committed or rolled back.
|
|
*/
|
|
public function releaseSavepoint(string $identifier): Promise;
|
|
}
|