1

我有这样一张桌子:

+---------+--------------+------+-----+-------------------+-----------------------------+
| Field   | Type         | Null | Key | Default           | Extra                       |
+---------+--------------+------+-----+-------------------+-----------------------------+
| id      | int(11)      | NO   | PRI | NULL              | auto_increment              |
| url     | varchar(255) | YES  | UNI | NULL              |                             |
| ts      | timestamp    | NO   |     | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
| content | longblob     | YES  |     | NULL              |                             |
| source  | varchar(255) | YES  |     | NULL              |                             |
| state   | int(11)      | NO   |     | 0                 |                             |
+---------+--------------+------+-----+-------------------+-----------------------------+

我希望 id 保留唯一的 PRIMARY KEY,并且我想添加字段“VERSION”,这将是唯一的。

我想要的是创建唯一的对(url,版本),但不是单独的。我怎样才能做到这一点?我应该像这样添加字段版本,更改 url 使其不是唯一的,然后添加约束吗?

提前致谢!

4

1 回答 1

1

如果您要查找的是将同一 URL 的多个版本一起存储在表中,那么是的,您需要做的是:

  1. 删除 URL 上的唯一约束
  2. 添加非唯一列版本(此处假设整数)
  3. 在(url,版本)上创建唯一约束或索引。我会建议一个索引,因为我认为这应该使唯一检查更快。
于 2012-09-01T19:52:17.227 回答