MySQL关于auto_increment的难题

发布于 2024-11-17 08:23:04 字数 184 浏览 2 评论 0原文

我似乎无法找出一个 MYSQL 命令或一组命令来允许我创建“id”字段,添加 auto_increment 值,然后将其设置为主键。

我想要这样做的原因是我有一个包含数百万行的现有表,并且我想为每一行分配一个唯一的 ID,该 ID 将成为主键并使其自动增量。

有没有办法用 SQL 语法来做到这一点,或者我需要编写脚本吗?

I can't seem to figure out a MYSQL command or set of commands that will allow me to create an 'id' field, add auto_increment values, and then set it as the primary key.

The reason I want to do this is that I have an existing table with millions of rows and I want to assign a unique ID to each row which would become the primary key and have it auto_increment.

Is there a way to do this with SQL syntax or do I need to write a script?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

愿与i 2024-11-24 08:23:05

这应该是比较简单的:

ALTER TABLE `myTable` ADD `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY

This should be relatively simple:

ALTER TABLE `myTable` ADD `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY
我很OK 2024-11-24 08:23:05

只是弄清楚以防万一其他人将来需要这个:

alter table test add column id int(9) unsigned auto_increment PRIMARY KEY;

Just figured it out in case anyone else needs this in the future:

alter table test add column id int(9) unsigned auto_increment PRIMARY KEY;
故人的歌 2024-11-24 08:23:05

也许您可以像这样创建一个新表:

CREATE TABLE new_table (id INT NOT NULL AUTO_INCREMENT,
   PRIMARY KEY (id), KEY(b))
ENGINE=InnoDB SELECT b,c FROM original;

May be you can create a new table like this:

CREATE TABLE new_table (id INT NOT NULL AUTO_INCREMENT,
   PRIMARY KEY (id), KEY(b))
ENGINE=InnoDB SELECT b,c FROM original;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文