`

查询表中自增长列的第一个不连续字段

阅读更多

昨天以前的同事问了我一个需求,要查询指定表中自增长序列的第一个不连续的的值。

 

之前一直使用oracle,就先举出了一种oracle的方法:

select t.n from (SELECT id,ROWNUM N FROM demoinc order by id)t where t.id!=t.N and rownum=1

这条语句利用oracle内置提供的伪列rownum,应该还算高效吧。

 

后来之前的同事说不用oracle,他们正在使用sqlite。

对sqlite了解不是很多,放弃了一些性能,改用子查询实现了:

select MIN(id) from demoinc a  where not exists(select * from demoinc where id=a.id+1)

 

后来考虑了一下,估计在上层应用中使用vector加快排效率应该也会不错。

0
0
分享到:
评论

相关推荐

    SQL Server中实现字段值自动增长且连续.pdf

    二是删除表中的记录后,自动增长列的值会出现不连续的现象,因为SQL Server不支持自动更新自动增长列的值,也不允许自动增长列存在NULL值或默认值。 为了解决这些缺陷,引入了第二种方法,即通过创建一个自定义函数...

    编号自动增长

    **第一步:在新表中新建两个列** 在创建新表时,首先需要定义表结构。假设我们需要创建一张名为`Orders`的表,并为它添加两个字段:`OrderID`(作为主键,用于存储自增长的编号)和`CustomerName`(用于存储客户...

    SQL获取刚插入的记录的自动增长列ID的值

    `ExecuteScalar()`方法将返回查询的第一行第一列的值,这正是我们想要的自动增长列`id`。请注意,如果`ExecuteScalar()`返回`null`,则表示插入操作可能失败或者`id`列未生成新值。因此,在实际应用中,你需要进行...

    省市查询表

    在IT行业中,省市查询表是一种常见的数据结构,用于在用户界面中提供地理位置的筛选和选择功能。这个场景常出现在各种应用程序、网站或者管理系统中,帮助用户便捷地定位到他们需要的特定区域。以下是对"省市查询表...

    MySQL_2_约束和多表查询1

    创建主键约束有三种方式:第一种是直接在CREATE TABLE语句中添加主键约束,第二种是使用ALTER TABLE语句添加主键约束,第三种是创建联合主键。 唯一约束(unique) 唯一约束是指保证数据不能重复。唯一约束的特点...

    一列保存多个ID(将多个用逗号隔开的ID转换成用逗号隔开的名称)

    在数据库设计中,有时会遇到一种情况,即在主表中的一列用来存储多个关联ID,这些ID之间用逗号隔开,这种做法虽然不符合数据库的第一范式,但在某些场景下却被广泛采用。例如,员工可能属于多个部门,每个员工的记录...

    (008)《第五部分-练习题1:MySQL单表查询》

    使用`CREATE TABLE`语句创建了一个名为`student`的表,包含了`id`(主键,自动增长)、`class`(班级)、`chinese`(语文成绩)、`english`(英语成绩)、`math`(数学成绩)、`name`(姓名)、`age`(年龄)和`time...

    自增字段的SQL语句解决方案

    在数据库设计与管理中,自增字段是一个非常实用的功能,它能够自动为每一条新记录分配一个唯一的、连续的整数值。这对于需要唯一标识符(例如主键)的场景特别有用。本文将详细介绍自增字段在SQL中的实现方法及相关...

    USER数据库程序代码

    数据库表则是存储用户数据的结构化容器,每个表通常由多个字段(列)和记录(行)组成。例如,一个“用户”表可能有“ID”、“用户名”、“密码”、“电子邮件”和“创建日期”等字段。 在数据库设计中,我们需要...

    Excel 2007数据透视表完全剖析 1/7

    5.2 创建第1个计算字段 109 5.3 案例学习:汇总下一年的预算 112 5.4 创建第1个计算项 117 5.5 了解数据透视表计算的规则和缺陷 121 5.5.1 记住运算符的优先级次序 121 5.5.2 使用单元格引用和命名区域 ...

    Excel 2007数据透视表完全剖析 3/7

    5.2 创建第1个计算字段 109 5.3 案例学习:汇总下一年的预算 112 5.4 创建第1个计算项 117 5.5 了解数据透视表计算的规则和缺陷 121 5.5.1 记住运算符的优先级次序 121 5.5.2 使用单元格引用和命名区域 ...

    MySQL自学文档第三周

    例如,创建一个名为`stu`的表,其中`stuid`字段是自动增长的主键,正确创建表的语句如下: ```sql CREATE TABLE stu ( stuid INT AUTO_INCREMENT PRIMARY KEY, stuname VARCHAR(10), stusex CHAR(2), stuage ...

    数据定义(创建数据库)

    接着,我们通过企业管理器对表进行增删改操作,比如在授课表中添加新列、更改数据类型以及删除列,这是数据库设计和维护中不可或缺的部分。而使用查询分析器定义新表、修改现有表和创建视图,进一步展示了SQL语言的...

    Excel 2007数据透视表完全剖析 5/7

    5.2 创建第1个计算字段 109 5.3 案例学习:汇总下一年的预算 112 5.4 创建第1个计算项 117 5.5 了解数据透视表计算的规则和缺陷 121 5.5.1 记住运算符的优先级次序 121 5.5.2 使用单元格引用和命名区域 ...

    oracle表空间容量查询

    - 第一个子查询(`free`):计算每个表空间中未使用的空间总量(单位为MB)。 - 第二个子查询(`total`):计算每个表空间的数据文件总量(单位为MB)。 - **连接条件**:通过`free.tablespace_name = total....

    3 MySQL多表查询与事务的操作 让初学者自学的

    第一范式(1NF)要求每个字段不可再分;第二范式(2NF)要求消除部分依赖;第三范式(3NF)要求消除传递依赖。遵循这些范式有助于构建高效、稳定且易于维护的数据库结构。 总结起来,MySQL的多表查询和事务操作是...

    Excel 2007数据透视表完全剖析 4/7

    5.2 创建第1个计算字段 109 5.3 案例学习:汇总下一年的预算 112 5.4 创建第1个计算项 117 5.5 了解数据透视表计算的规则和缺陷 121 5.5.1 记住运算符的优先级次序 121 5.5.2 使用单元格引用和命名区域 ...

    第06章_多表查询.docx

    在MySQL数据库的学习中,多表查询是不可或缺的一部分,它允许我们从两个或更多个相关表中获取信息。多表查询,又称为关联查询,它的核心在于利用表之间的关系来完成更复杂的检索任务。这些表之间的关系通常是通过...

    MySql-Learning

    - 示例: 在 `testdb` 数据库中创建一个名为 `users` 的表,包含 `id` 和 `name` 两个字段。 ```sql CREATE TABLE users (id INT, name VARCHAR(50)); ``` 3. **删除一个表**: - 命令格式: `DROP TABLE 表名;` ...

Global site tag (gtag.js) - Google Analytics