The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

DBIx::Class::PK::Auto - Automatic primary key class

SYNOPSIS

  # In your table classes (replace PK::Auto::SQLite with your database)
  __PACKAGE__->load_components(qw/PK::Auto::SQLite Core/);
  __PACKAGE__->set_primary_key('id');

DESCRIPTION

This class overrides the insert method to get automatically incremented primary keys.

You don't want to be using this directly - instead load the appropriate one for your database, e.g. PK::Auto::SQLite, in your table classes:

  __PACKAGE__->load_components(qw/PK::Auto::SQLite Core/);

Note that PK::Auto::SQLite is specified as the leftmost argument.

Alternatively, you can load the components separately:

  __PACKAGE__->load_components(qw/Core/);
  __PACKAGE__->load_components(qw/PK::Auto::SQLite/);

This can be used, for example, if you have different databases and need to determine the appropriate PK::Auto class at runtime.

LOGIC

PK::Auto does this by letting the database assign the primary key field and fetching the assigned value afterwards.

METHODS

insert

Overrides insert so that it will get the value of autoincremented primary keys.

sequence

Manually define the correct sequence for your table, to avoid the overhead associated with looking up the sequence automatically.

AUTHORS

Matt S. Trout <mst@shadowcatsystems.co.uk>

LICENSE

You may distribute this code under the same terms as Perl itself.