我有一个类似
的表格-------------------------------
| PK1 | PK2 | Col1 | Col2 |
-------------------------------
我想更改表,使结果看起来像
---------------------------------------------------
| PK1 | PK2 | Col1 | Col2 | PK3 (AUTO_INCREMMENT) |
---------------------------------------------------
因此插入的结果将类似于
------------------------------------------------
| PK1 | PK2 | Col1 | Col2 | PK3(AUTOINCREMMENT)|
------------------------------------------------
| 1 | 1 | null | null | 1 |
| 1 | 1 | null | null | 2 |
| 1 | 1 | null | null | 3 |
| 1 | 2 | null | null | 1 |
| 1 | 2 | null | null | 2 |
| 1 | 2 | null | null | 3 |
| 2 | 1 | null | null | 1 |
| 2 | 1 | null | null | 2 |
| 2 | 1 | null | null | 3 |
-----------------------------------------------
我尝试过:
ALTER TABLE `table` DROP PRIMARY KEY;
ALTER TABLE `table` ADD COLUMN `PK3` NOT NULL PRIMARY KEY AUTO_INCREMENT;
ALTER TABLE `table` DROP PRIMARY KEY;
ALTER TABLE `table` ADD PRIMARY KEY (`PK1`,`PK2`,`PK3`);
但是,如果PK3具有AUTO_INCREMENT,则无法删除主键 我还尝试稍后添加AUTO_INCREMENT(通常添加PK3,然后创建复合主键,然后
ALTER TABLE `table` MODIFY COLUMN `PK3` INT NOT NULL AUTO_INCREMENT;
结果为#1075,只能有一个自动列,并且必须将其定义为键
谢谢。