- 浏览: 251139 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (192)
- 技术研究学习 (19)
- 工作总结 (4)
- spring3.x (11)
- mail (2)
- jar (2)
- FCKeditor (1)
- quartz (2)
- json (1)
- jdbc (5)
- struts2 (6)
- java基础 (18)
- jboss (3)
- IT名称解析 (1)
- 测试工具 (2)
- 工作趣谈 (1)
- 数据库 (8)
- js (8)
- jquery (1)
- mysql (20)
- Sql (3)
- Oracle (1)
- easyui (0)
- log4j (1)
- 源码研究 (1)
- Jasper Report (0)
- Jbpm4 (4)
- xml (1)
- ireport (0)
- javavm (1)
- sitemesh (5)
- compass (1)
- jvm (1)
- ext (1)
- lucene (0)
- cxf (1)
- Blazeds (0)
- Resteasy (1)
- jaxb (1)
- tomcat (1)
- Rmi (1)
- BoneCP (1)
- velocity (3)
- OSCache (1)
- EHCache (1)
- 高性能开发 (9)
- 设计模式 (0)
- 网络协议应用 (1)
- Ibatis (1)
- powerdesigner (1)
- 架构师之路 (2)
- memcached (4)
- MapReduce (1)
- 测试组 (1)
- 图像处理 (2)
- LoadRunner (2)
- 报表 (1)
- 负载均衡 (1)
- 分布式 (3)
- c# (1)
- java中一些特殊问题 (3)
- java 8 (1)
- Mogodb (1)
- 项目设计与实现 (2)
- Ubuntu (1)
- eclipse (1)
- gradle (1)
- 私有云 (1)
- redis (1)
- 移动前端 (1)
最新评论
来源:http://www.zioer.com/mysql-自增字段为何出错/
网站采用PHP和Mysql数据库开发。一直运行良好。最近,服务器在一次断电之后,网站的新闻部分,便无法再添加新的内容。查看网站日志,发现是该表的自增部分报错,错误如下所示: Duplicate entry ’151473′ for key ‘PRIMARY’ 这种错误的产生,由于是计算机的不正常关闭而导致的。查看该表,关键字段最大值只能到151472。此时,手工增加一条新的记录,也会报同样的错误。说明自增值151473在MySQL的内部已被占用,但是在news表中,该记录并没有被保留。 于是,用命令查看news表当前自增值: mysql> show table status like ‘news’; 发现在列“Rows”,其值为151472。 此时,只需要把该值更改大一点,跳过有错误的记录号,便可以了。 mysql>alter table news auto_increment = 151474; 修改完成后,接着在news表中插入新的记录,一切正常。 以上这种错误很少出现,比如,会在操作系统非正常关闭或者MySQL数据库突然挂断的情况下,才有可能出现。 另一种情况 用户设置自增字段过小,也会造成以上错误的发生,比如,报如下错误: Duplicate entry ’127′ for key ‘PRIMARY’ 以上错误的原因,是用户把关键字段设置为了tinyint类型,这种类型的数据最大也只能到127,所以会报以上错误。 此时修改的方法,是将该自增字段的类型修改为int或BIGINT。 总之,遇到这种错误,首先需要查看出错的表,以确定具体的原因,比如是数据库错误导致的,还是因为自增字段类型设置的不正确导致的。然后,采用以上两种方法具体解决。
发表评论
-
MySQL主从复制(Master-Slave)与读写分离(MySQL-Proxy)实践
2013-08-26 13:12 961来源:http://www.cnblogs.com/luckc ... -
日志回滚,mysql优化
2012-09-25 13:40 1963原创作品,允许转载,转载时请务必以超链接形式标明文章 原始 ... -
mysql 执行顺序 SQL语句执行顺序分析
2012-09-21 16:48 9516来源:http://blog.sina.com.c ... -
MySQL查询中的非空问题
2012-09-21 16:52 2155MySQL查询是我们经常 ... -
Mysql字符串截取函数SUBSTRING的用法说明
2012-09-24 09:52 960来源:http://www.jb51.net/article/ ... -
Mysql点滴-CAST/CONVERT 类型转换函数
2012-09-20 11:19 914CAST() 和CONVERT() 函数可用来获取一个 ... -
mysql字符串向整型转换
2012-09-20 11:19 1145mysql字符串向整型转换 SELECT MAX(C ... -
mysql as 别名与 join 多表连接语法
2012-09-20 11:19 2402在MySQL中,使用AS关键字为字段、表、视图取别名,或者 ... -
理解MySQL——复制(Replication)
2012-09-24 09:52 864来源:http://www.cnblogs.com/hustc ... -
mysql中的begin-end流程控制语句与局部变量
2012-09-24 09:53 3739来源:http://blog.sina.com.c ... -
MySQL字符集 GBK、GB2312、UTF8区别 解决 MYSQL中文乱码问题
2012-09-24 09:52 1101MySQL中涉及的几个字符集 character- ... -
MySql 申明变量以及赋值
2012-09-25 13:40 815sql server中变量要先申明后赋值: 局部变 ... -
mysql变量使用总结
2012-09-21 16:53 883来源:http://www.cnblogs.com ... -
Mysql中文乱码问题完美解决方案
2012-09-18 14:47 640MySQL会出现中文乱码的原因不外乎下列几点: 1.se ... -
MySQL中快速插入大数据量和语句优化的相关技巧
2012-09-18 14:00 1057来源:http://it.100xuexi.com/view/ ... -
mysql中利用insert对自增字段进行插值
2012-09-18 11:34 1647[color=blue][/color]INSERT和REPL ... -
mysql获取插入、添加记录的自动编号
2012-09-18 11:14 1581[color=indigo][/color]如何获取某个表中的 ... -
MYSQL中如何设置列默认值的介绍(时间)
2012-09-17 10:56 1001来源:http://tech.it168.com/o/2006 ... -
mysql添加注释
2012-09-17 10:14 832mysql允许在sql 代码中使用注释。这对于说明存放在文件中 ...
相关推荐
遇到MySQL自增字段报错时,首先需要查看出错的表,以确定具体的原因,然后采取相应的解决方案。同时,需要注意自增字段类型的设置,避免溢出情况的出现。 四、相关知识点 1. MySQL自增字段类型 MySQL自增字段类型...
以下是对MySQL自增字段相关知识点的详细说明: 1. **自增初始值设定**: - 当创建一个带有AUTO_INCREMENT属性的表时,可以使用`AUTO_INCREMENT=n`选项指定自增字段的初始值。 - 对于已存在的表,可以使用`ALTER ...
MySQL中的自增字段是数据库设计中常用的一种特性,主要用于生成唯一的序列号,通常用于主键。自增字段的默认行为是每次插入新记录时自动增加一个整数值,从1开始并递增。然而,当删除记录或有特殊操作时,自增字段的...
本文将详细介绍几种主流数据库系统中的自增字段创建方法,包括 DB2、Oracle、MySQL、PostgreSQL、SQL Server 和 Sybase。 #### DB2 DB2 支持通过 `GENERATED ALWAYS AS IDENTITY` 属性来创建自增字段。这种方式...
在处理MySQL数据库时,经常需要操作自增字段(AUTO_INCREMENT),尤其是当需要调整自增起始值的时候。在Python中与MySQL交互时,了解如何修改AUTO_INCREMENT的值是十分重要的。本文将深入探讨如何在使用Python操作...
在Oracle数据库系统中,与许多其他关系型数据库如MySQL或SQL Server不同,Oracle并没有内置的自增字段(Identity Column)特性。但是,Oracle9i及后续版本提供了Sequence和Trigger机制,使得开发者可以通过这两种...
MySQL提供了两个系统变量来控制自增字段的行为:`auto_increment_offset`和`auto_increment_increment`。前者用于设置自增字段的初始值,后者用于设置自增的步长。例如,要设置自增字段从10开始,每次增加5,可以...
在mysql中很多朋友都认为字段为AUTO_INCREMENT类型自增ID值是无法修改,其实这样理解是错误的,下面介绍mysql自增ID的起始值修改与设置方法。通常的设置自增字段的方法:创建表格时添加: 代码如下:create table ...
identity是一种使用SQL Server和MySQL的自增字段生成主键的策略。这种策略不能用于Oracle,因为Oracle不支持自增字段。这种策略适用于需要高性能的场景。 select select是一种使用触发器生成主键的策略。这种策略...
在Oracle数据库中,自增字段的设置确实与MySQL等其他数据库系统有所不同。Oracle在较新的12c版本中引入了一种新的语法,使得创建自增序列变得更加方便。这个特性被称为`IDENTITY`列,它允许我们在创建表时直接定义一...
在MySQL数据库中,自增字段通常是用于自动增加序列值,比如在创建新记录时,主键ID会自动递增。然而,除了自增操作,我们有时也需要对字段执行自减操作,例如在处理计数器或者统计值时,如文章的评论数。本篇文章将...
MySQL使用`AUTO_INCREMENT`关键字来创建自增字段。在创建表T1时,`id`字段定义为`INT NOT NULL`,`AUTO_INCREMENT`表明这是一个自增字段。MySQL会自动处理自增的逻辑,无需额外设置初始值或递增值。 4. **...
在SQL Server中,自增字段通常通过`IDENTITY`属性实现,它会自动为新插入的行生成一个唯一的序列号。然而,在Oracle数据库系统中,没有直接对应的`IDENTITY`功能,但可以通过其他方式来模拟这个行为。这里我们将讨论...
在 MySQL 中,我们可以为字段设置默认值,以便在插入数据时自动填充。例如,创建一个 Message 表,设置 Content 字段的默认值: ```sql CREATE TABLE Message ( Message_ID int NOT NULL PRIMARY KEY AUTO_...
在MySQL数据库中,自增字段(AUTO_INCREMENT)是一种非常实用的功能,它允许系统在每次插入新记录时自动为该字段生成一个唯一的递增值。然而,有时用户可能会遇到无法创建自增字段的问题,这通常是由于特定的服务器...
在MySQL中,自增字段通过`AUTO_INCREMENT`属性来实现。这个属性可以应用于整数类型的字段,确保每次插入新行时,该字段的值会自动递增。创建自增字段的示例代码如下: ```sql CREATE TABLE users ( user_id INT ...
MySQL中的自增ID是表中自动递增的主键字段,通常用于唯一标识表中的每一条记录。在MySQL中,自增ID默认的数据类型是INT,其最大值为`2^32-1`,即4,294,967,295。当超过这个上限时,尝试插入新的记录会导致自增ID不再...
1. 为什么建议将自增列设为主键? MySQL的InnoDB存储引擎使用主键作为聚集索引,这意味着数据记录直接存储在主键索引的叶子节点上。如果设置自增列为主键,新记录将按照递增顺序插入,这极大地优化了插入性能,因为...
然后向自增主键表中添加了 4 条记录,表中的四条添加的记录的 id 字段值就分别为: 1、2、3、4。接下来,将表中的 id 为 4 的字段删除,然后,继续在表中添加一条记录,执行之后我们可以发现,此时自增主键的 ID 结果...