相关疑难解决方法(0)

MySql无法生成列auto_increment

我有一个表"Bestelling"有4列:"Id"(PK),"KlantId","Datum","BestellingsTypeId",现在我想让列Id auto_increment,但是,当我尝试这样做时,我得到这个错误:

ERROR 1062: ALTER TABLE causes auto_increment resequencing, resulting in duplicate entry '1' for key 'PRIMARY'

SQL Statement:

ALTER TABLE `aafest`.`aafest_bestelling` CHANGE COLUMN `Id` `Id` INT(11) NOT NULL AUTO_INCREMENT



ERROR: Error when running failback script. Details follow.



ERROR 1046: No database selected

SQL Statement:

CREATE TABLE `aafest_bestelling` (

  `Id` int(11) NOT NULL,

  `KlantId` int(11) DEFAULT NULL,

  `Datum` date DEFAULT NULL,

  `BestellingstypeId` int(11) DEFAULT NULL,

  PRIMARY KEY (`Id`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1
Run Code Online (Sandbox Code Playgroud)

有人有个主意吗?

mysql sql mysql-error-1062

46
推荐指数
6
解决办法
4万
查看次数

MYSQL和innoDB动态地改变表的AUTO_INCREMENT

我有一个问题,例如在我的系统中我有下一个表:

CREATE TABLE `sales` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `amount` FLOAT NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB;
-- is more complex table
Run Code Online (Sandbox Code Playgroud)

内容:

+-----+-------+
| id  | amount|
+-----+-------+
|2023  |  100 |
|2024  |  223 |
|2025  |  203 |
|...          |
|2505  |  324 |
+-----+-------+
Run Code Online (Sandbox Code Playgroud)

我不知道当前的id(每天都有销售).我正在尝试规范化表格.

UPDATE  sales SET id=id - 2022;
Run Code Online (Sandbox Code Playgroud)

结果:

+-----+-------+
| id  | amount|
+-----+-------+
|   1  |  100 |
|   2  |  223 |
|   3  |  203 |
|... …
Run Code Online (Sandbox Code Playgroud)

mysql innodb auto-increment mysql-5.7

6
推荐指数
1
解决办法
2845
查看次数