数据库新增表字段提示Duplicate entry for key PRIMARY,mysql锁表的具体使用
2023-09-27 14:27:29 时间
问题
MySQL - 尝试添加新列时出现重复输入错误
我有一个MySQL数据库,其表有很多的数据.我想添加另一列,但我一直收到以下错误:
Error 1062: Duplicate entry ‘’ for key ‘PRIMARY’ SQL Statement
很奇怪的一个问题,我加字段怎么会重复主键重复呢?
原因
运行 ALTER TABLE 操作的线程将应用 DML 操作的“在线日志”,这些操作是从其他连接线程在同一表上并发运行的。应用 DML 操作时,可能会遇到重复键条目错误(ERROR 1062 (23000): Duplicate entry),即使重复条目只是临时的,并且会被“在线日志”中的后续条目还原. 这类似于 InnoDB 中的外键约束检查的想法,其中约束必须在事务期间保持
大概就是我在加字段的时候,数据库有插入了新数据
解决
它解决方案会锁定写入表,但如果表不是很大,通常适合解决问题
LOCK TABLES my_table WRITE;
ALTER TABLE my_table
ADD COLUMN `ts` DATETIME NULL AFTER `id`;
UNLOCK TABLES;
注意
如果新增字段发现错误了,记得手动执行UNLOCK TABLES;,不然表就一直被锁住了
相关文章
- VS+MySQL——1. 安装MySQL数据库详细步骤
- 【数据库开发】如何创建MySQL数据库连接池(一个基于libmysql的MySQL数据库连接池示例(C/C++版))
- mysql解决无法远程客户端连接
- Vc数据库编程基础MySql数据库的常见库命令.跟表操作命令
- 更换mysql数据库的datadir目录
- 在linux下,mysql的备份数据库 脚本的编写
- mysql的sql语句优化30计
- MySQL常见错误
- excel数据导入mysql后日期失效问题
- MYSQL数据库-内外连接
- mysql数据库设计
- MySQL错误: could not retrieve transation read-only status server
- SQL学习笔记之MySQL索引知识点
- mysql查询优化--临时表和文件排序(Using temporary; Using filesort问题解决)
- Navicat for mysql 显示中文乱码问题
- 数据库模型---之mysql(操作数据库)含序列化模型对象(类似java实体类映射)
- mysql更新时设置ON UPDATE CURRENT_TIMESTAMP保存数据库的时间
- MySql数据库Update批量更新与批量更新多条记录的不同值实现方法
- 玩转Mysql系列 - 第25天:sql中的where条件在数据库中提取与应用浅析
- MySQL文章参考
- Mysql系列四:数据库分库分表基础理论
- MySQL数据库的读写分离、分库分表
- mysql oom之后的page 447 log sequence number 292344272 is in the future
- MySQL数据库创建随机测试数据
- 常见MYSQL导入导出数据命令
- rsyslog的ommsql模块如何连接MYSQL的非标准数据库端口?