mysql - 如何将现有表设置修改为自动增加 PK 字段?
问题描述
我在尝试修改带有错误的MySql表时发现了一些困难。
此表有一个设置为PK的id字段。问题是创建此表时,此字段未设置为auto increment。
我还尝试删除此字段并再次添加它,将其设置为自动增量,但我不能这样做,因为它在其他表中用作 FK,事实上我收到此错误消息:
#HY000Cannot drop column 'id': needed in a foreign key constraint 'FK_LivestockMessageDetails_LivestockMessage' of table 'digital_services_DB.LivestockMessageDetails'
while executing:
ALTER TABLE LivestockMessage
DROP `id`,
ENGINE=InnoDB ROW_FORMAT=DYNAMIC DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci
我知道我可以删除 FK,删除我的id字段并再次创建它作为自动增量。
但是我怎样才能修改我的表,将其设置为自动增量,而不执行所有这些程序?
解决方案
更改表格并修改列以包含该AUTO_INCREMENT
选项?
ALTER TABLE LivestockMessage MODIFY COLUMN id INT AUTO_INCREMENT;
(该表将保留其PRIMARY KEY
对 的约束id
。)
推荐阅读
- python - 如何在文件上写入然后将其复制到另一个文件?
- r - 当在 df 中按 R 中具有不同长度组合的另一列进行分组时,获取列中创建的所有组合的计数
- smartsheet-api - 通过 API 设置完成项目列
- css - 将我网格中的错误项目居中并每行添加 5 个方格
- npm - Azure 管道缓存任务出现“未注册 API 资源位置”错误
- python - .query() 用于否定 str.contains()?
- python - ValueError:应用 cross_correlation_shifts 时解包的值太多(预期为 2)
- typescript - 启用哪个规则以在 ESLint CLI 输出中抛出“模块没有导出的成员”?
- assembly - 在 NEON armv8 程序集中存储指令
- swift - 有没有办法在电容器插件中使用 CoreML 模型?