相关疑难解决方法(0)

重新排序/重置自动增量主键

我有一个带有自动增量主键的MySQL表.我删除了表中间的一些行.现在我在ID列中有这样的东西:12,13,14,19,20.我删除了15,16,17和18行.

我想重新分配/重置/重新排序主键,以便我有连续性,即使19 a 15,20 a 16,依此类推.

我该怎么做?

mysql database

120
推荐指数
7
解决办法
20万
查看次数

重置ID自动增量?phpMyAdmin的

我在我的数据库表中测试了一些数据,看看是否有任何错误,现在我清理了所有测试数据,但我的id(自动增量)不再从1开始,可以(怎么做)我重置它?

php mysql

75
推荐指数
4
解决办法
12万
查看次数

在MySQL中删除后自动递增

我有一个MySQL表,主键字段打开AUTO_INCREMENT.在阅读了这里的其他帖子之后,我注意到有相同问题并且答案各不相同的人.有人建议不要使用此功能,其他人说它不能"修复".

我有:

table: course
fields: courseID, courseName
Run Code Online (Sandbox Code Playgroud)

示例:表中的记录数:18.如果我删除记录16,17和18 - 我希望输入的下一条记录的课程ID为16,但是它将是19,因为最后输入的课程ID是18.

我的SQL知识并不令人惊讶,但无论如何使用查询(或phpMyAdmin界面中的设置)刷新或更新此计数?

该表将与数据库中的其他表相关.


鉴于所有的建议,我决定忽略这个'问题'.我将简单地删除并添加记录,同时让自动增量完成它的工作.我想这个数字到底是什么并不重要,因为它只被用作唯一标识符,并且没有(如上所述)商业含义.

对于那些我可能与我的原帖混淆的人:我不想用这个字段来知道我有多少记录.我只是希望数据库看起来整洁,并且具有更多的一致性.

mysql sql primary-key auto-increment

64
推荐指数
4
解决办法
14万
查看次数

如何使用另一个表中的MAX值重置MySQL AutoIncrement?

我知道这不起作用,以各种形式尝试并且一直都失败了.实现以下结果的最简单方法是什么?

ALTER TABLE XYZ AUTO_INCREMENT = (select max(ID) from ABC);
Run Code Online (Sandbox Code Playgroud)

这非常适合自动化项目.谢谢!

SELECT @max := (max(ID)+1) from ABC;        -> This works!
select ID from ABC where ID = (@max-1);     -> This works!
ALTER TABLE XYZ AUTO_INCREMENT = (@max+1);  -> This fails :( Why?
Run Code Online (Sandbox Code Playgroud)

mysql sql reset auto-increment

34
推荐指数
5
解决办法
4万
查看次数

更新MySQL数据库中所有表的AUTO_INCREMENT值

可以通过设置/重置AUTO_INCREMENTMySQL表的值

ALTER TABLE some_table AUTO_INCREMENT = 1000

但是我需要设置AUTO_INCREMENT其现有值(以修复MM复制),例如:

ALTER TABLE some_table SET AUTO_INCREMENT = AUTO_INCREMENT + 1 这是行不通的

实际上,我想对数据库中的所有表运行此查询.但实际上这并不是非常重要.

除了手动运行查询外,我找不到解决此问题的方法.请你提出一些建议或指出一些想法.

谢谢

mysql replication

30
推荐指数
3
解决办法
4万
查看次数

如何从mysql表中删除auto_increment

这应该是一个非常容易的问题,但我找不到一个有效的解决方案.

我将日期从Oracle迁移到MYSQL,在此过程中,所有主键都设置为auto_increment.

但是,有很多已确定的关系(父PK与孩子相同).

因此,执行事务的正确方法是插入父表,result.insertId从此交互中获取,然后在子表中插入相同的值.我知道我可以简单地忽略在insert命令中发送id的auto_increment,但我不想让它继续下去.

正如我读到的解决方案说我需要将列更改为完全相同的规范但auto_increment,我运行以下SQL:

alter table added_object modify column id_interaction_object int(11) not null;
Run Code Online (Sandbox Code Playgroud)

..我收到以下消息:

ERROR 1833(HY000):无法更改列'id_interaction_object':用于表'metric'的外键约束'FK__METRIC__ADDED_OBJECT'

有小费吗?

谢谢

mysql

8
推荐指数
1
解决办法
8667
查看次数

在MySQL中重置AUTO_INCREMENT需要很长时间

ALTER TABLE tablename AUTO_INCREMENT = 10000000
Run Code Online (Sandbox Code Playgroud)

此查询需要很长时间才能更新.为什么?我需要优化此查询.

mysql optimization auto-increment

7
推荐指数
2
解决办法
1万
查看次数

MySQL DBCC CHECKIDENT 语法错误

当我尝试执行时,我对不断出现的语法错误感到困惑:

DBCC CHECKIDENT('database', RESEED, 1)
Run Code Online (Sandbox Code Playgroud)

在PHPMyAdmin中...

错误:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DBCC CHECKIDENT('database', RESEED, 1)' at line 1
Run Code Online (Sandbox Code Playgroud)

结果看起来像这样 在此输入图像描述

mysql sql xampp syntax phpmyadmin

5
推荐指数
1
解决办法
8873
查看次数

如何在mysql中重置自动增量值?

我公司有不同类型的发票。例子:

H00001/2013。. . H99999/2013

T00001/2013 . . . T99999/2013

问题是,新年的编号正在增加。如何为每个新年重置自动增量值?

这是我当前的代码:

    CREATE TABLE `invoices` ( 
      `invoicenumber` mediumint unsigned NOT NULL auto_increment, 
      `invoicetype` enum('A','B') NOT NULL, 
      `date` date NOT NULL, 
      `client` varchar(100) NOT NULL,
      PRIMARY KEY (invoicetype,invoicenumber)
    ) COMMENT='' ENGINE='MyISAM'; 
Run Code Online (Sandbox Code Playgroud)

mysql

4
推荐指数
2
解决办法
2万
查看次数

如何删除Django中一个且只有一个应用程序的所有数据

我有一个设置(Django 1.11)有几个应用程序,包括 OOK、EEK 和其他不相关的应用程序。我想删除 OOK 的所有数据,同时保持 EEK(和其余数据)不变。理想情况下,我希望所有的主键也被重置,这样第一个新的 OOK 模型就会得到 1,依此类推……

这可能吗?

我能找到的只是resetsqlclear都已弃用。flush从数据库中删除了所有数据,因此不是我想要的

我承认这是一件奇怪的事情,但这是给我的手……

django

4
推荐指数
2
解决办法
1400
查看次数

如何确保auto_increment数字没有差距?

我有一个auto_incrementing的问题案例,这是我的表我首先它是如此顺利增加id*

id*      name
1        name1
2        name2
3        name3
4        name4
5        name5
6        name6
Run Code Online (Sandbox Code Playgroud)

但是当我删除一条记录并插入一条新记录时,id从7开始.

id*      name
1        name1
2        name2
3        name3
5        name5
6        name6
7        name7
Run Code Online (Sandbox Code Playgroud)

这就是我想要做的:

id*      name
1        name1
2        name2
3        name3
4        name7
5        name5
6        name6
Run Code Online (Sandbox Code Playgroud)

我想要一个解决方案,其中填写每个数字,所以如果我删除一行,下一个autoinc号码将是我删除的数字而不是更高的下一个数字.

mysql sql

2
推荐指数
1
解决办法
706
查看次数

重置mysql表中的自动增量值

我的mysql表自动递增值就像83321,现在这个值是4110234543。

如何重设旧的自动增量值?

提前致谢

mysql

0
推荐指数
1
解决办法
260
查看次数