---
name: "Rose::DB::Object::Metadata::UniqueKey"
section: "3pm"
platform: "linux"
package: "librose-db-object-perl"
version: "1:0.820-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Rose::DB::Object::Metadata::UniqueKey"
---

# Rose::DB::Object::Metadata::UniqueKey(3pm)

Unique key metadata.

## NAME

Rose::DB::Object::Metadata::UniqueKey - Unique key metadata.

## SYNOPSIS

```
  use Rose::DB::Object::Metadata::UniqueKey;
  $uk = Rose::DB::Object::Metadata::UniqueKey->new(
          columns => [ 'name', 'color' ]);
  MyClass->meta->add_unique_key($uk);
  ...
```

## DESCRIPTION

Objects of this class store and manipulate metadata for unique keys in a database table.  Each unique key is made up of one or more columns.

## OBJECT METHODS

- **add\_column \[COLUMNS\]**

  This method is an alias for the add\_columns method.

- **add\_columns \[COLUMNS\]**

  Add COLUMNS to the list of columns that make up the unique key.  COLUMNS must be a list or reference to an array of  column names or Rose::DB::Object::Metadata::Column-derived objects.

- **columns \[COLUMNS\]**

  Get or set the list of columns that make up the unique key.  COLUMNS must a list or reference to an array of column names or Rose::DB::Object::Metadata::Column-derived objects.

  This method returns all of the columns that make up the unique key.  Each column is a Rose::DB::Object::Metadata::Column-derived column object if the unique key's parent has a column object with the same name, or just the column name otherwise.  In scalar context, a reference to an array of columns is returned.  In list context, a list is returned.

- **column\_names**

  Returns a list (in list context) or reference to an array (in scalar context) of the names of the columns that make up the unique key.

- **delete\_columns**

  Delete the entire list of columns that make up the unique key.

- **name \[NAME\]**

  Get or set the name of the unique key.  This name should be unique among all unique keys for a given table.  Traditionally, it is the name of the index that the database uses to maintain the unique key, but practices vary.  If left undefined, the default value is a string created by joining the column\_names with underscores.

- **parent \[META\]**

  Get or set the Rose::DB::Object::Metadata-derived object that this unique key belongs to.

## AUTHOR

John C. Siracusa (siracusa@gmail.com)

## LICENSE

Copyright (c) 2010 by John C. Siracusa.  All rights reserved.  This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
