创建一个不是主键的自动增量列

时间:2013-04-07 17:02:55

标签: mysql create-table

我读了很多关于为什么这是一个坏主意,但这就是我想要这样做的原因。我希望我的桌子看起来像这样:

id   |   article   |   link   |   text_cont
 1   |   //text    |   www... |  parsed text content
 2   |   //text2   |   www..2 |  parsed text content2

等等。我不希望我的id成为主键的共鸣是因为我希望我的LINK成为主键...当我运行Cron Job以获取更多数据时,我将不会有重复的字段表。我可以使用INSERT IGNORE,它不会包含两次相同的链接。但是我仍然想要id自动递增,所以我可以使用id的“无限滚动”。

这可能吗?我真的希望如此,因为我认为这是一个很好的理由...

2 个答案:

答案 0 :(得分:1)

您无法自动增加文本字段。

此外,如果您不希望Id作为您的密钥,为什么要ID?您似乎需要更改运行cron作业的方式,而不是您的架构

-

如果您仍想知道如何创建AI字段:

link_id int NOT NULL AUTO_INCREMENT

对于现有数据:

ALTER TABLE articles MODIFY COLUMN link_id int(4) auto_increment

答案 1 :(得分:0)

您不需要主键就可以自动增加它。这很好。

create table dude (
  id int auto_increment,
  link varchar(255),
  primary key (link),
  unique key (id)
);

insert into dude values (null, "www.google.com");
insert into dude values (null, "www.stackoverflow.com");
insert into dude values (null, "www.google.com");

它可能不是最好的桌面设计,但它可以回答你的问题。