---
name: "Alzabo::Schema"
section: "3pm"
platform: "linux"
package: "libalzabo-perl"
version: "0.92-6"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Alzabo::Schema"
---

# Alzabo::Schema(3pm)

Schema objects

## NAME

Alzabo::Schema - Schema objects

## SYNOPSIS

```
  use base qw(Alzabo::Schema);
```

## DESCRIPTION

This is the base class for schema objects..

## METHODS

### name

Returns a string containing the name of the schema.

### table ($name)

Returns an `"Alzabo::Table"` object representing the specified table.

An `"Alzabo::Exception::Params"` exception is throws if the schema does not contain the table.

### tables (@optional\_list)

If no arguments are given, this method returns a list of all `"Alzabo::Table"` objects in the schema, or in a scalar context the number of such tables.  If one or more arguments are given, returns a list of table objects with those names, in the same order given (or the number of such tables in a scalar context, but this isn't terribly useful).

An `"Alzabo::Exception::Params"` exception is throws if the schema does not contain one or more of the specified tables.

### has\_table ($name)

Returns a boolean value indicating whether the table exists in the schema.

### begin\_work

Starts a transaction.  Calls to this function may be nested and it will be handled properly.

### rollback

Rollback a transaction.

### commit

Finishes a transaction with a commit.  If you make multiple calls to `"begin_work()"`, make sure to call this method the same number of times.

### run\_in\_transaction ( sub { code... } )

This method takes a subroutine reference and wraps it in a transaction.

It will preserve the context of the caller and returns whatever the wrapped code would have returned.

### driver

Returns the `"Alzabo::Driver"` object for the schema.

### rules

Returns the `"Alzabo::RDBMSRules"` object for the schema.

### sqlmaker

Returns the `"Alzabo::SQLMaker"` object for the schema.

## AUTHOR

Dave Rolsky, \<autarch@urth.org\>
