mysql唯一键

时间:2011-01-08 01:29:54

标签: mysql database-design

我有一个表items,用于保存已由用户选择但没有唯一或主键的项目,因为表格上没有唯一记录,因为每行userID和{{1不是唯一的(用户肯定会有多个项目),listID可以是唯一的/主要的,因为更多的用户可能会选择相同的项目。在该表上添加唯一和/或主键的正确方法是什么?

项目表:

itemID

项目数据:

CREATE TABLE IF NOT EXISTS `items` (
  `userID` int(20) NOT NULL,
  `listID` int(20) NOT NULL,
  `itemID` int(20) NOT NULL,
  `qty` int(10) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

3 个答案:

答案 0 :(得分:1)

在表格中声明一个额外的“id”列,并使用自动增量。参见例如http://dev.mysql.com/doc/refman/5.0/en/example-auto-increment.html

此列没有任何意义,但它可以用于唯一引用表中的条目(主键的整个目的)。

答案 1 :(得分:1)

您可以跨多个列创建索引。在这种情况下,我建议您在所有ID列中使用索引,以便项目对用户和列表是唯一的。这应该可以解决问题:

CREATE UNIQUE INDEX unique ON tbl_name (userID, listID, itemID);

答案 2 :(得分:0)

添加新列

`id` int (20) auto_increment primary key