首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

sql删除一条记录后其他记录id自动迁移,使id连续

在写一个应用时,有这么一个操作:客户端传过来点击位置,进行运算后得到相应数据在数据库里id,然后显示对应信息。...但是在进行delete后数据显示就混乱了,发现根本原因是原本连续数据id(例如:1、2、3、4),在sqlitedelete语句执行完后(比如说删除id为2数据),变得不连续(1、3、4)。...删除后点击第三个数据,结果他显示成第二个,而第二个早就删除了,因此显示信息完全混乱。...(Object[]) ids); //更新id,使id大于要删除id往前移动一位。...db.execSQL("update tb_diary2 set _id=_id-1 where _id > ?",(Object[] )ids); 很多网友都说这样会影响性能,应该用触发器进行操作。

1.2K20
您找到你想要的搜索结果了吗?
是的
没有找到

SQL Server 返回最后插入记录自动编号ID

IDENT_CURRENT 返回为任何会话和任何作用域中特定表最后生成标识值。IDENT_CURRENT 不受作用域和会话限制,而受限于指定表。...IDENT_CURRENT 返回为任何会话和作用域中特定表所生成值。 @@IDENTITY 返回为当前会话所有作用域中任何表最后生成标识值。...SCOPE_IDENTITY 返回为当前会话和当前作用域中任何表最后生成标识值 SCOPE_IDENTITY 和 @@IDENTITY 返回在当前会话中任何表内所生成最后一个标识值。...IDENT_CURRENT(‘TableName’) –返回指定表中生成最后一个标示值 SELECT IDENT_INCR(‘TableName’)–返回指定表标示字段增量值 SELECT...IDENT_SEED(‘TableName’)–返回指定表标示字段种子值 返回最后插入记录自动编号 SELECT IDENT_CURRENT(‘TableName’) 返回下一个自动编号

2.2K40

Python3 操作 MySQL 插入一条数据并返回主键 id实例

Python 中貌似并没有直接返回插入数据 id 操作(反正我是没找到),但是我们可以变通一下,找到最新插入数据 #!...id print(cursor.lastrowid) # 最新插入行主键id print(conn.insert_id()) conn.commit() 使用 cursor.lastrowid...和 conn.insert_id() 时一定要在 conn.commit() 之前 由于数据库安全机制决定,其中一个进程执行完成一条语句时,此时只有这个进程能看到数据。...中并没有所谓真正多线程,建议使用多进程 补充拓展:mysql中插入一条数据后得到插入后主键id值 ** 当我们涉及多表进行插入操作是,常常需要在程序中等到刚刚插入数据主键Id, 便与进行多表关联...="id" SELECT LAST_INSERT_ID() AS id </selectKey 以上这篇Python3 操作 MySQL 插入一条数据并返回主键 id实例就是小编分享给大家全部内容了

2.8K10

通过 Laravel 查询构建器实现简单增删改查操作

通过前面几篇教程预热,我们已经连接上数据库,创建好了数据表,填充好了数据,接下来,就是在 Laravel 应用中实现对数据库增删改查了。...where id = ?', [$name, $id]); 如果更新成功,返回受影响行数,如果更新数据与原记录数据一样,则返回0,如果更新出错,则抛出 QueryException 异常。...查询记录 要查询指定数据表所有记录,可以通过以下方式实现: $users = DB::table('users')->get(); 该方法返回是一个包含所有查询结果 stdClass 集合:...上述代码返回也是包含指定查询结果 stdClass 集合: 有时候我们可能希望返回查询结果中一条记录,这可以通过将 get 方法替换为 first 方法来实现: $user = DB::table...(); 同样,我们通过 where 方法指定删除 id >= 11 记录,delete 方法返回受影响行数,具体逻辑和原生删除语句也是一样

4.1K20

通过 Laravel Eloquent 模型实现批量赋值和软删除

()); 这样一来,不管多少字段,一条语句就搞定了全部属性赋值。...实现原理 Eloquent 模型类为我们提供了「软删除」功能支持。这就意味着,在 Laravel 中,我们不需要编写任何额外代码就可以实现对数据库记录「软删除」。...要软删除一条记录,在对应模型类实例上调用 delete 方法即可,底层会自动将数据表 deleted_at 字段设置为当前时间,表示该记录已经被「删除」。...()) { dump('该记录已删除'); } 此时再查询 id=32 记录,已经不存在了,报 404 异常。...如果想要在查询结果中出现软删除记录,可以通过在查询时候调用 withTrashed 方法实现: $post = Post::withTrashed()->find(32); 返回结果和正常查询结果一样

2.3K10

laravel框架数据库操作、查询构建器、Eloquent ORM操作实例分析

如果要查询整个表使用get(),查询表中一条数据使用first(),查询一条数据某个字段用value(),查询表中所有数据某个字段用pluck() //get()返回表中所有数据 $res=DB::...table('student')- get(); //first()返回结果集中一条数据 $res=DB::table('student')- where('id','1001')- first()...; //value()返回一条数据中指定字段 $res=DB::table('student')- where('id','1003')- value('name'); //pluck()返回结果集中...Laravel内置Eloquent ORM提供了一种便捷方式帮助你组织数据库数据,每张数据表都对应一个与该表进行交互模型(Model),通过Model类,你可以对数据表进行查询、插入、更新、删除等操作...Eloquent默认会管理数据表创建时间、更新时间,对应数据表created_at、updated_at字段,你需要在创建表时包含这两个字段。

13.3K51

PHP-Laravel(DB类操作数据库)

2、增加信息(insert) 对数据库中某个表增加数据主要有两个函数可以实现,分别是insert()和insertGetId() insert(数组)可以同时添加一条或多条,返回值是布尔类型。...insertGetId(一维数组),只能添加一条数据,返回自增id。...①Update方法表示可以修改整个记录全部字段; ②Increment和decrement表示修改数字字段数值(递增或者递减),典型应用:记录登录次数、积分增加; 案例:把id=1名称,改名为...注意:Get查询结果每一行记录是对象形式,不是数组。 案例2:获取id<3数据 ->where()->get(); 案例3:查询id>2且年龄<21 ?...; truncate表示清空整个数据表; DB::table(‘table_name’)->where(‘id’,‘1’)->delete(); 例如:删除id小于3记录 【补充:truncate】

3.7K20

laravel5.6 框架操作数据 Eloquent ORM用法示例

连接多数据库配置 默认使用'mysql' protected $connection = 'mysql'; //自动维护时间戳 默认是'true' public $timestamps=true; //返回当前时间时间戳...,进入数据库,输出时,可以输出格式化好时间 protected function getDateFormat() { return time(); } //设置之后,返回就是数据表时间戳...]主键查询 查询一条数据 $data=Users::find($id); //findOrFail() 根据主键查询 如果没有查到 报错 $data=Users::findOrFail($id); //...get() 查询所有数据 $data=Users::get(); //first() 查询第一条 $data=Users::where('id',' ','1')- orderBy('age','desc...',' ',2)- delete(); laravel5.6 操作数据查询构建器 更多关于Laravel相关内容感兴趣读者可查看本站专题:《Laravel框架入门与进阶教程》、《php优秀开发框架总结

2K30

通过 Laravel Eloquent 模型实现简单增删改查操作

一个 Eloquent 模型类映射一张数据表,通过模型类提供方法,你可以获取其映射数据表所有记录,也可以获取单条记录,还可以创建、更新和删除对应数据表记录,而这一切都不需要你编写任何 SQL 语句...: $user = User::findOrFail(111); 如果 id=111 记录在 users 数据表中不存在,就会返回 404 响应: ?...')->max('id'); # 最大值 你会发现,如果你掌握了查询构建器,就等同于掌握了 Laravel所有数据库查询操作。...执行上面的代码就会在数据库新增一条记录(我们在 Tinker 中执行上述代码): ? 我们先要创建一个新 Post 模型实例,然后依次设置需要设置字段,最后调用 save 方法保存即可。...$post->delete(); 这样,就完成了 id = 31 对应数据表记录删除,你还可以通过 Eloquent 提供 destroy 方法一次删除多条记录,通过数组传递多个主键 ID 即可

7.9K20

orm 系列 之 Eloquent演化历程2

,也是laravel中一大亮点Artisan,Artisan是 Laravel 自带命令行接口名称,此处不做具体介绍了,有机会再细说,当我们在命令行中执行php artisan command时候...,然后产生文件,然后还有一个比较有意思是DatabaseMigrationRepository类,其作用是:我们需要记录migration哪些已经做了,哪些还没有做,这些记录方式我们通过DatabaseMigrationRepository...来实现,最终是通过将执行记录以log形式插入到数据库中。...commentable_id列对应 Post 或Video ID 值,而 commentable_type 列对应所属模型类名。...当访问 commentable 关联时,ORM 根据commentable_type 字段来判断所属模型类型并返回相应模型实例。

2.4K30

Laravel5.2之Demo1——URL生成和存储

(0);语句,删除原来'id'和timestamps邮戳语句,再执行php artisan migrate迁移命令。...部分主要处理当验证通过后,主要实现以下逻辑: 检查link链接是否已经在数据表里 如果link链接已经在数据表里,返回该短连接 如果link链接不在数据表里,那就为该链接创建一个hash字段...根据提供数据在数据表里插入一个记录record 返回该链接给用户(1).使用Query Builderwhere()方法,并传入Input::get('link')参数验证数据表里是否已经有该链接...;//根据输入link做hash哈希就行或者别的更简短输入值 } (4).向link数据表里插入一个新记录record: else{ $newHash = Hash::make(Input..., 'hash' => $newHash ]); } 使用Link模型create()方法创建一条record,或者: $link = new Link();

24K31
领券