我需要在MySQL中auto_increment一个不是主键的字段

lit*_*leK 27 mysql primary-key auto-increment

现在,我有一个表,其主键是一个auto_increment字段.但是,我需要将主键设置为username,date(以确保不能存在具有日期的重复用户名).

auto_increment但是,我需要该字段才能更改行信息(添加和删除).

通常在这种情况下做什么?

谢谢!

Art*_*kii 20

只需在(用户名,日期)的复合上设置唯一索引.

ALTER TABLE `table` ADD UNIQUE INDEX `name` (`username`, `date`);
Run Code Online (Sandbox Code Playgroud)

或者,您可以尝试

ALTER TABLE `table` DROP PRIMARY KEY, ADD PRIMARY KEY(`username`,`date`);
Run Code Online (Sandbox Code Playgroud)

我认为在后一种情况下,您需要将这些列声明为NOT NULL.


小智 7

我知道这是个老问题,这是我解决问题的方法-

ALTER TABLE `student_info` ADD `sn` INT(3) UNIQUE NOT NULL AUTO_INCREMENT FIRST         
Run Code Online (Sandbox Code Playgroud)