0 0

为什么insert操作会把整张表都锁住呢?5

项目中遇到一个很奇怪的问题:
问题描述:现在需要从项目外部导大量的数据到项目内,这个时候我起了一个spring事务往很多张表中去插入数据,这个时候其他用户访问系统去更新旧的数据的时候发现表被锁了。也就是说我在导入数据的时候,其他用户都不能对系统的表进行相应的更新操作。这是为什么????
 
2014年11月27日 16:50

4个答案 按时间排序 按投票排序

0 0

连用什么数据库都不说,真难回答。

数据库的事务隔离级别设置是可以调整的,和那个东西的设置有关系。

2014年12月02日 10:39
0 0

楼主至少把用的什么数据库,什么引擎说一下吧?

2014年12月01日 09:50
0 0

楼主至少把用的什么数据库,什么引擎说一下吧?

2014年12月01日 09:50
0 0

不为什么,数据库的事务机制就是这样,insert时全表锁,因为要生成主键字段、索引等等,update是行级锁。同时对一张表进行读写操作,会产生‘脏’数据,导致读、写两端的数据不一致。当然了,这是要在绝对意义上的‘同时’情况下才会发生。我建议你读数据用视图吧。

2014年11月28日 10:16

相关推荐

    40insert语句的锁为什么这么多?.pptx

    当我们谈论"40insert语句的锁为什么这么多"这个问题时,实际上是在探讨MySQL数据库中的事务处理和锁的使用,特别是在插入操作(insert)中涉及到的锁类型和策略。 首先,我们来看创建的表`t`,它有一个主键`id`和一...

    表是否被锁住

    - `TM`: DML锁,用于数据操纵语言(如INSERT, UPDATE, DELETE)操作。 - `UL`: PL/SQL用户锁,用于PL/SQL过程中的锁定。 - `DX`: 分布式事务锁,用于跨多个数据库的分布式事务。 - `CF`: 控制文件锁,用于控制文件...

    40.insert语句的锁为什么这么多?1

    虽然通常情况下,简单的Insert操作是轻量级的,并且在申请到自增ID后会立即释放自增锁,但在某些特定场景下,Insert语句可能会涉及到更多的锁操作,以确保数据的一致性和并发安全性。 对于`INSERT ... SELECT`语句...

    生成数据库表insert语句脚本

    在数据库管理中,生成数据库表的INSERT语句脚本是一项常用的任务,特别是在数据迁移、备份或测试环境中。INSERT语句是SQL语言的一部分,用于向数据库表中插入新的数据记录。以下将详细介绍如何生成这些脚本以及其在...

    数据库表insert方法

    数据库中的INSERT方法是SQL语言中用于向数据表中插入新行的基本操作之一。在数据库管理中,INSERT语句被广泛应用于初始化数据、更新业务逻辑或响应用户操作等场景。通过理解给定文件中的示例,我们可以深入探讨...

    mysql insert锁机制1

    MySQL的Insert锁机制是数据库管理系统中确保数据一致性和并发控制的重要组成部分。在MySQL的InnoDB存储引擎中,插入操作不仅涉及到行级锁,还可能涉及Gap锁和Next-Key Locks,这些锁机制的设计是为了防止幻读...

    DML练习:UPDATE,DELETE,INSERT操作 数据库实验报告

    这显示了DELETE语句与WHERE子句一起使用,可以按条件删除数据,而没有WHERE子句会删除表中的所有记录,因此需要谨慎操作。 - 实例2:从S表中移除平均分低于60的学生。这个例子进一步强调了WHERE子句在删除操作中的...

    将表中数据导出为insert sql 语句

    根据给定的文件信息,我们将深入探讨如何将数据库表中的数据导出为SQL INSERT语句。这种方法在数据迁移、备份或需要将数据插入到另一个数据库的场景中非常有用。下面,我们将详细介绍这一过程的关键步骤和技术细节。...

    c# 导出MSSQL表数据 Insert语句

    本文将深入探讨如何在C#中导出MSSQL表的数据并生成Insert语句,这对于数据迁移、备份或测试环境的搭建都非常有用。 首先,要实现这个功能,我们需要对SQL Server的ADO.NET库有基本的了解。ADO.NET是微软提供的一个...

    SQL SERVER:把表里的数据导出成为INSERT INTO脚本的存储过程

    根据提供的文件信息,我们可以构建一个详细的SQL Server存储过程来实现将表中的数据转换为`INSERT INTO`脚本的功能。此存储过程将适用于多种数据类型,并能够动态生成插入语句,以便用户可以方便地导出数据作为脚本...

    Oracle导出INSERT语句

    4. **生成INSERT语句**:工具会遍历所选表的所有记录,为每一条数据生成一个INSERT INTO语句,结构通常为 `INSERT INTO 表名 (列名1, 列名2, ...) VALUES (值1, 值2, ...);` 5. **保存与输出**:生成的INSERT语句会...

    SSM笔记-insert操作

    总结来说,Mybatis的`<insert>`标签提供了丰富的配置选项,无论是处理自增主键还是动态构建SQL,都能满足开发者的各种需求。在SSM框架下,结合Spring的事务管理,可以实现高效且可靠的数据库插入操作。理解并熟练...

    VB 利用INSERT语句向数据表中插入数据

    在VB(Visual Basic)编程中,向数据表中插入数据是一项基本操作,通常涉及与数据库的交互。在本教程中,我们将深入探讨如何利用INSERT语句来实现这一目标。INSERT语句是SQL语言的一部分,用于在数据库表中创建新的...

    DB2数据库批量导insert工具

    然而,对于某些特定场景,如只备份特定表的数据或需要以SQL语句的形式保存数据以便于恢复,生成insert语句就显得尤为重要。传统的DB2备份工具可能不提供这种功能,因此这个工具填补了这一空白。 该工具的主要特点...

    sqlserver表数据生成insertsql脚本(导出成insertsql脚本).pdf

    SQL Server表数据生成INSERT SQL脚本 SQL Server是一种强大的关系数据库管理系统,提供了多种方式来生成INSERT SQL脚本,以便将数据导出到其他数据库或系统中。在本文中,我们将介绍如何使用SQL Server 2008中文版...

    将sqlserver表中指定数据转化为insert语句

    在SQL Server中,有时我们需要将现有表中的特定数据导出为INSERT语句,以便在其他数据库或备份中重建这些记录。这通常在迁移数据、创建测试数据或者进行数据备份时非常有用。以下是如何将SQL Server表中指定数据转化...

    数据库表数据转为insert sql语句

    Data row to insert sql是一个小的工具软件,可以将数据库表中指定数据转换成相应的insert sql语句。目前支持的数据库类型为oracle,db2,ms sql server。 目前还有一些缺陷,还有待完善,具体如下: 1、对ms sql ...

    SQL Server表数据导出成Insert语句的工具

    在SQL Server数据库管理中,有时我们需要将表中的数据导出为Insert语句,这在数据迁移、备份或测试环境中非常常见。"SQL Server表数据导出成Insert语句的工具"是一个专门为此目的设计的应用程序,它能帮助数据库管理...

    JAVA使用JDBC进行insert操作添加信息到数据库

    JAVA 使用 JDBC 进行 insert 操作添加信息到数据库 一、 JDBC 概述 JDBC(Java Database Connectivity)是一种 Java 应用程序用来与数据库进行交互的 API。它提供了一组标准的接口,允许 Java 应用程序与各种...

    利用链表操作成员函数insertlist,deletelist.outputlist,形成以下的简单链表操作程序。

    利用链表操作成员函数insertlist,deletelist.outputlist,形成以下的简单链表操作程序。

Global site tag (gtag.js) - Google Analytics