标签: auto-increment

在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万
查看次数

当整数列上的auto_increment达到数据库中的max_value时会发生什么?

我正在实现一个数据库应用程序,我将使用JavaDB和MySQL作为数据库.我的表中有一个ID列,其类型为整数,我使用数据库auto_increment-function作为值.

但是当我获得超过2(或4)亿个帖子和整数时,会发生什么呢?整数溢出并继续或者是我可以处理的异常抛出?

是的,我可以更改为数据类型,但如何检查何时需要?我认为获取last_inserted_id()函数是有问题的,如果我使用long作为ID列的数据类型.

database integer-overflow auto-increment lastinsertid

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

如何使用一些前缀使MySQL表主键自动增加

我有这样的表

table
id Varchar(45) NOT NULL AUTO_INCREMENT PRIMARY KEY,
name CHAR(30) NOT NULL,
Run Code Online (Sandbox Code Playgroud)

我想增加我的id字段,比如'LHPL001','LHPL002','LHPL003'......等等.我应该为此做些什么?请让我知道任何可能的方式.

mysql auto-increment

64
推荐指数
3
解决办法
33万
查看次数

有没有办法从预准备语句中检索自动增量ID

有没有办法在使用带有预准备语句的java查询时从数据库查询中检索自动生成的密钥.

例如,我知道AutoGeneratedKeys可以如下工作.

stmt = conn.createStatement();

stmt.executeUpdate(sql, Statement.RETURN_GENERATED_KEYS);
if(returnLastInsertId) {
    ResultSet rs = stmt.getGeneratedKeys();
    rs.next();
    auto_id = rs.getInt(1);
} 
Run Code Online (Sandbox Code Playgroud)

然而.如果我想使用准备好的Statement进行插入,该怎么办?

String sql = "INSERT INTO table (column1, column2) values(?, ?)";
stmt = conn.prepareStatement(sql);

//this is an error
stmt.executeUpdate(Statement.RETURN_GENERATED_KEYS);
if(returnLastInsertId) {
    //this is an error since the above is an error
    ResultSet rs = stmt.getGeneratedKeys();
    rs.next();
    auto_id = rs.getInt(1);
} 
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点,我不知道.从javadoc看来,PreparedStatements无法返回自动生成的ID.

java mysql prepared-statement auto-increment

59
推荐指数
1
解决办法
9万
查看次数

在mysql表auto_increment中创建一个ID(事后)

我从另一个开发者处获得了一个数据 他没有在任何桌子上使用auto_incrementers.它们都有主键ID,但是他在代码中手动完成了所有增量操作.

我现在可以把它们变成Auto_incrementers吗?


哇,非常好,谢谢你.它在我的一张桌子上毫无障碍地工作.但是第二个表,我收到此错误...将'.\ DBNAME#sql-6c8_62259c'重命名为'.\ DBNAME\dealer_master_events'时出错

mysql primary-key auto-increment

58
推荐指数
3
解决办法
16万
查看次数

自动增量在mysql中可以生成的最大ID号是多少

我有一个数据库,快速填充我们每天10-20k行的数据.

ID和自动增量选项的限制是多少?如果ID被创建为INTEGER,那么我可以为无符号值做最大值2,147,483,647?

但是当自动增量高于此值时呢?这一切都崩溃了吗?那会有什么解决方案呢?

我相信很多人都拥有大型数据库,我想听听他们的意见.

谢谢.

mysql database integer auto-increment

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

如何在SQL Server数据库中添加auto_increment主键?

我有一个表设置,目前没有主键.我需要做的就是添加一个primary key, no null, auto_increment.

我正在使用Microsoft SQL Server数据库.我知道它不能在单个命令中完成,但我尝试的每个命令都会返回语法错误.

编辑---------------

我创建了主键,甚至将其设置为非null.但是,我无法设置auto_increment.

我试过了:

ALTER TABLE tableName MODIFY id NVARCHAR(20) auto_increment
ALTER TABLE tableName ALTER COLUMN id NVARCHAR(20) auto_increment
ALTER TABLE tableName MODIFY id NVARCHAR(20) auto_increment
ALTER TABLE tableName ALTER COLUMN id NVARCHAR(20) auto_increment
Run Code Online (Sandbox Code Playgroud)

我正在使用,NVARCHAR因为它不会让我NOT NULL在int下设置

sql sql-server auto-increment

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

postgres自动增量未在显式id插入上更新

我在postgres中有下表:

CREATE TABLE "test" (
    "id" serial NOT NULL PRIMARY KEY,
    "value" text
)
Run Code Online (Sandbox Code Playgroud)

我正在做以下插入:

insert into test (id, value) values (1, 'alpha')
insert into test (id, value) values (2, 'beta')

insert into test (value) values ('gamma')
Run Code Online (Sandbox Code Playgroud)

在前2个插入中,我明确提到了id.但是,在这种情况下,表的自动增量指针不会更新.因此在第3个插入中我得到错误:

ERROR:  duplicate key value violates unique constraint "test_pkey"
DETAIL:  Key (id)=(1) already exists.
Run Code Online (Sandbox Code Playgroud)

我从未在MyISAM和INNODB引擎中的Mysql中遇到过这个问题.显式与否,mysql总是根据最大行id更新自动增量指针.

postgres中这个问题的解决方法是什么?我需要它,因为我希望对我桌子中的某些ID进行更严格的控制.

更新: 我需要它,因为对于某些值我需要有一个固定的ID.对于其他新条目,我不介意创建新的条目.

我认为可以通过在我明确插入id时手动递增nextval指针来实现max(id) + 1.但我不知道该怎么做.

postgresql auto-increment

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

H2数据库中的自动增量ID

是否有一个表的auto_incrementing BIGINT ID.它可以这样定义

id bigint auto_increment
Run Code Online (Sandbox Code Playgroud)

但这没有效果(它不会自动增加).我想插入所有字段,但ID字段 - ID字段应由DBMS提供.或者我需要调用一些东西来增加ID计数器吗?

database h2 auto-increment

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

PHP mySQL - 在主键上使用自动递增将新记录插入表中

想知道是否有速记版本将新记录插入到启用了主键的表中?(即不必在查询中包含键列)让我们说键列是ID,其他列是Fname,Lname和Website

$query = "INSERT INTO myTable VALUES ('Fname', 'Lname', 'Website')";
Run Code Online (Sandbox Code Playgroud)

php mysql insert auto-increment

48
推荐指数
3
解决办法
18万
查看次数