社区
MySQL
帖子详情
查询-插入问题。如何保证数据完整性?
madmanahong
2010-12-17 02:02:15
有这么一种情况,就是
1. select .. from .. where..
来查询一个人是否存在
2. insert ..
如果此人存在,那么就插入到另一个表中。
但是由于并发,导致session 2在session 1进行完第一步的时候,将此人删除了。
此时session 1还不知道,造成了session 1执行成功,插入了一条无效的数据(因为此人在session 2已经被删除了)
这种情况如何做呢?
...全文
99
9
打赏
收藏
查询-插入问题。如何保证数据完整性?
有这么一种情况,就是 1. select .. from .. where.. 来查询一个人是否存在 2. insert .. 如果此人存在,那么就插入到另一个表中。 但是由于并发,导致session 2在session 1进行完第一步的时候,将此人删除了。 此时session 1还不知道,造成了session 1执行成功,插入了一条无效的数据(因为此人在session 2已经被删除了) 这种情况如何做呢?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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版
- **
数据完整性
:** 通过事务管理机制来
保证
数据的一致性和完整性。 - **实时性:** 数据处理结果通常是实时返回给用户的。 **1.1.2 什么是OLAP** OLAP(Online Analytical Processing,在线分析处理)则主要用于...
mysql数据库 --
数据完整性
---实体完整性-域完整性-参照完整性
数据完整性
是为了
保证
插入
到数据库中的数据是正确的,防止用户可能的错误输入。
数据完整性
分为实体完整性、域完整性、参照完整性。 2.1实体(行)完整性 (实体完整性中的实体指的是表中的行,因为一行记录对应一个...
数据完整性
数据完整性
是指数据库中数据在逻辑上的一致性、正确性、有效性和相容性。为了
保证
插入
到数据库中的数据是正确的,防止用户可能的错误输入。
数据完整性
分为实体完整性、域完整性、参照完整性。 (1)实体完整性...
MySQL数据库——
数据完整性
(实体完整性、域完整性、参照完整性)
数据完整性
是为了
保证
插入
到数据库中的数据是正确的,防止用户可能的错误输入。
数据完整性
分为实体完整性、域完整性、参照完整性。 2.1实体(行)完整性 (实体完整性中的实体指的是表中的行,因为一行记录对应一个...
mysql
插入
之前验证数据的有效性完整性
数据验证是确保数据库完整性和一致性的关键步骤。在
插入
数据到数据库之前进行验证,可以防止无效数据的录入,避免可能导致的错误和数据污染。字段必须在18到99岁之间,那么
插入
新顾客信息前应该检查。在
插入
新订单...
MySQL
56,937
社区成员
56,755
社区内容
发帖
与我相关
我的任务
MySQL
MySQL相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MySQL相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章