mysql自增主键查询及auto_increment修改。

核对当前report_cert_day表的主键report_id 的auto_increment为128,并且与report_id的最大值不冲突。

SELECT AUTO_INCREMENT FROM information_schema.tables WHERE table_name="表名";

mysql> show create table report_cert_day\G;
*************************** 1. row ***************************
       Table: report_cert_day
Create Table: CREATE TABLE `report_cert_day` (
  `report_id` int(9) NOT NULL AUTO_INCREMENT COMMENT '报表ID',
  `district_code` int(6) NOT NULL COMMENT '归属省',
  `year` int(4) NOT NULL COMMENT '归属年',
  `season` int(1) NOT NULL COMMENT '归属季度',
  `month` int(2) NOT NULL COMMENT '归属月',
  `day` int(2) NOT NULL COMMENT '归属日',
  ...
  `create_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `lup_date` datetime DEFAULT NULL COMMENT '更新时间',
  PRIMARY KEY (`report_id`,`create_date`)
) ENGINE=InnoDB AUTO_INCREMENT=128 DEFAULT CHARSET=utf8 COMMENT='证书日报表'

1 row in set (0.00 sec)

ERROR: 
No query specified

mysql> select report_id from report_cert_day order by report_id desc limit 3;
+-----------+
| report_id |
+-----------+
|       127 |
|       126 |
|       125 |
+-----------+
3 rows in set (0.01 sec)

mysql> SELECT AUTO_INCREMENT FROM information_schema.tables WHERE table_name="report_cert_day";
+----------------+
| AUTO_INCREMENT |
+----------------+
|            128 |
+----------------+
1 row in set (0.00 sec)

mysql> 

如果出现冲突等情况,通过如下命令进行修改。修改之后查看。

修改表名为tableName的auto_increment值:

ALTER TABLE report_cert_day auto_increment=129;

mysql> ALTER TABLE report_cert_day auto_increment=129;
Query OK, 0 rows affected (0.09 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> SELECT AUTO_INCREMENT FROM information_schema.tables WHERE table_name="report_cert_day";
+----------------+
| AUTO_INCREMENT |
+----------------+
|            129 |
+----------------+
1 row in set (0.01 sec)

mysql> 

猜你喜欢

转载自blog.csdn.net/qyq88888/article/details/121207333