sql/src/Transaction.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;
}