社区
MySQL
帖子详情
查询-插入问题。如何保证数据完整性?
madmanahong
2010-12-17 02:02:15
有这么一种情况,就是
1. select .. from .. where..
来查询一个人是否存在
2. insert ..
如果此人存在,那么就插入到另一个表中。
但是由于并发,导致session 2在session 1进行完第一步的时候,将此人删除了。
此时session 1还不知道,造成了session 1执行成功,插入了一条无效的数据(因为此人在session 2已经被删除了)
这种情况如何做呢?
...全文
113
9
打赏
收藏
查询-插入问题。如何保证数据完整性?
有这么一种情况,就是 1. select .. from .. where.. 来查询一个人是否存在 2. insert .. 如果此人存在,那么就插入到另一个表中。 但是由于并发,导致session 2在session 1进行完第一步的时候,将此人删除了。 此时session 1还不知道,造成了session 1执行成功,插入了一条无效的数据(因为此人在session 2已经被删除了) 这种情况如何做呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yun3948
2010-12-23
打赏
举报
回复
完全不懂。都是牛人
Tirecoed
2010-12-22
打赏
举报
回复
[Quote=引用 5 楼 madmanahong 的回复:]
引用 4 楼 iihero 的回复:
将事务隔离级设为可串行化,即可避免此问题。
到底是设置成串行化好呢?还是LOCK TABLES好呢?
[/Quote]
学习!……
iihero
2010-12-17
打赏
举报
回复
[Quote=引用 5 楼 madmanahong 的回复:]
引用 4 楼 iihero 的回复:
将事务隔离级设为可串行化,即可避免此问题。
到底是设置成串行化好呢?还是LOCK TABLES好呢?
[/Quote]
如果是MyISAM引擎,只能lock tables
如果是InnoDB引擎,可以通过设置隔离级来做。
zuoxingyu
2010-12-17
打赏
举报
回复
照楼主的意思是这样的吧
insert into tb2 select * from tb1 where userid=100;
这样的情况下,执行的过程中会给TB1加表锁,其他连接是不能够进行DELETE的。
madmanahong
2010-12-17
打赏
举报
回复
[Quote=引用 4 楼 iihero 的回复:]
将事务隔离级设为可串行化,即可避免此问题。
[/Quote]
到底是设置成串行化好呢?还是LOCK TABLES好呢?
iihero
2010-12-17
打赏
举报
回复
[Quote=引用楼主 madmanahong 的回复:]
有这么一种情况,就是
1. select .. from .. where..
来查询一个人是否存在
2. insert ..
如果此人存在,那么就插入到另一个表中。
但是由于并发,导致session 2在session 1进行完第一步的时候,将此人删除了。
此时session 1还不知道,造成了session 1执行成功,插入了一条无效的数据(因为此人在sessio……
[/Quote]
将事务隔离级设为可串行化,即可避免此问题。
zz_d
2010-12-17
打赏
举报
回复
这是 同步 的问题了,在一个 session 获取或修改表的数据前, 先对该表加锁.
楼主可以好好看一下 "lock table" 方面的资料.
ACMAIN_CHM
2010-12-17
打赏
举报
回复
SESSION1, SESSION2 执行的语句都是什么?举例说明。
小小小小周
2010-12-17
打赏
举报
回复
事务或锁机制来实现.
Tianlesoftware Oracle 学习手册(v1.0)高清完整PDF版
Tianlesoftware Oracle 学习手册(v1.0)
mysql数据库 --
数据完整性
---实体完整性-域完整性-参照完整性
一、
数据完整性
数据完整性
是为了
保证
插入
到数据库中的数据是正确的,防止用户可能的错误输入。
数据完整性
分为实体完整性、域完整性、参照完整性。 2.1实体(行)完整性 (实体完整性中的实体指的是表中的行,因为一行记录对应一个实体) 实体完整性规定表的一行在表中是唯一的实体,不能出现重复。 实体完整性通过表的主键来实现。 主键关键字: primary key 主键特点: 不能为null,并且唯一。 主...
处理大量数据时,怎样确保数据的准确性和完整性?
在数据存储过程中,采用加密和备份等技术手段确保数据的完整性和安全性。建立数据质量指标、数据审查和纠错机制,以及对数据进行更新和维护。在采集和存储数据时,采用校验和等技术手段确保数据的准确性。对需要进行计算或分析的数据,进行必要的验证和处理。对数据进行必要的监控和管理,确保数据的完整性和安全性。建立完善的数据质量管理体系,包括数据采集、存储、传输和使用等环节的质量控制和管理。在采集数据时,尽可能获取完整的、准确的数据,包括所有必要的字段和信息。处理大量数据时,确保数据的准确性和完整性至关重要。
数据完整性
数据完整性
是指数据库中数据在逻辑上的一致性、正确性、有效性和相容性。为了
保证
插入
到数据库中的数据是正确的,防止用户可能的错误输入。
数据完整性
分为实体完整性、域完整性、参照完整性。 (1)实体完整性(Entity Integrity)。实体完整性指表中行的完整性。主要用于
保证
操作的数据(记录)非空、唯一且不重复。即实体完整性要求每个关系(表)有且仅有一个主键,每一个主键值必须唯一,而且不允许为“空...
MySQL数据库——
数据完整性
(实体完整性、域完整性、参照完整性)
一、
数据完整性
数据完整性
是为了
保证
插入
到数据库中的数据是正确的,防止用户可能的错误输入。
数据完整性
分为实体完整性、域完整性、参照完整性。 2.1实体(行)完整性 (实体完整性中的实体指的是表中的行,因为一行记录对应一个实体) 实体完整性规定表的一行在表中是唯一的实体,不能出现重复。 实体完整性通过表的主键来实现。 主键关键字: primary key 主键特点: 不能为null,并且唯一。 ...
MySQL
57,063
社区成员
56,762
社区内容
发帖
与我相关
我的任务
MySQL
MySQL相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MySQL相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章