The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

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.