[Dbix-class] add_unique_constraint

Carl Franks fireartist at gmail.com
Thu Jun 4 09:47:19 GMT 2009


2009/6/3 Ascii King <tech at swattermatter.com>:
> I am a rookie programmer trying to set up a web database. I am having
> trouble understanding how to get the add_unique_constraint working. I am
> using Catalyst and FormFu and I cannot get the method working as i expect. I
> added the following line to my Schema file:
>
> # Created by DBIx::Class::Schema::Loader v0.04004 @ 2009-05-14 10:18:31
> # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:5sD0bi0DMi9SwUz0z7Jt7A
>
> __PACKAGE__->add_unique_constraint(username => [ qw/username/ ]);
>
>
> But, it does not seem to affect my code at all.  I would like each username
> to be unique in the system and prevent dupklicates from being entered. i am
> using both an SQLite3 database and a separate instance on a MS SQL Server.

add_unique_constraint() is used by deploy() to add the constraint to
the SQL used to create the database table.

It won't do any checks when you're INSERTing / UPDATEing data, because
the constraint should be in the database's schema.

So, as you're using DBIx::Class::Schema::Loader this won't do what
you're expecting it to do - you need to manually add the constraint
to the database (or use DBIC's deploy() or update() ).

Carl



More information about the DBIx-Class mailing list