我有一张这样的table
-------------------------------
| 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有自动增量,我就不能删除主键。我后来也尝试添加自动增量(正常添加pk3,然后创建复合主键,然后
ALTER TABLE `table` MODIFY COLUMN `PK3` INT NOT NULL AUTO_INCREMENT;
如果结果为#1075,则只能有一个自动列,并且必须将其定义为键
提前谢谢。
暂无答案!
目前还没有任何答案,快来回答吧!