Index: nodequeue.install
===================================================================
--- nodequeue.install	(revision 6527)
+++ nodequeue.install	(working copy)
@@ -119,6 +119,9 @@
       'qid' => array('qid'),
       'rid' => array('rid'),
     ), // indexes
+    'unique keys' => array(
+      'qid_rid' => array('qid', 'rid'),
+    ),
   ); // nodequeue_roles
   $schema['nodequeue_types'] = array(
     'description' => 'Defines the node types which are allowed in each queue',
@@ -141,6 +144,9 @@
       'qid' => array('qid'),
       'type' => array('type'),
     ), // indexes
+    'unique keys' => array(
+      'qid_type' => array('qid', 'type'),
+    ),
   ); // nodequeue_types
 
   // Subqueues are minor queues that inherit all of the properties of
@@ -225,6 +231,9 @@
       'nid' => array('nid'),
       'qid_nid' => array('qid', 'nid'),
     ), // indexes
+    'unique keys' => array(
+      'sqid_nid' => array('sqid', 'position', 'nid'),
+    ),
   ); // nodequeue_nodes
 
   return $schema;
@@ -414,3 +423,21 @@
     }
   }
 }
+
+/**
+ * Add unique indexes to nodequeue tables.
+ */
+function nodequeue_update_7202() {
+  $schema = nodequeue_schema();
+  foreach (array(
+      'nodequeue_nodes',
+      'nodequeue_types',
+      'nodequeue_roles',
+    ) as $table) {
+    if (!empty($table['unique keys'])) {
+      foreach ($table['unique keys'] as $key_name => $keys) {
+        db_add_unique_key($table, $key_name, $keys);
+      }
+    }
+  }
+}
