社区
MySQL
帖子详情
事务,貌似一个很傻帽的问题
ayayad
2011-06-21 10:11:08
数据库事务我看过,意思就是几个操作要么都执行,要么都不执行
但到实际应用上就没怎么想通
比如一个转帐程序,肯定是要求,取和存同时执行
数据库事务这里没问题
但我程序里怎么写呢?
如果我写了一个取的程序,再写一个存的语句,但这样写的话算同时执行吗?
我的思路有些混乱,帮我理一下,就是程序这里不会写
...全文
125
19
打赏
收藏
事务,貌似一个很傻帽的问题
数据库事务我看过,意思就是几个操作要么都执行,要么都不执行 但到实际应用上就没怎么想通 比如一个转帐程序,肯定是要求,取和存同时执行 数据库事务这里没问题 但我程序里怎么写呢? 如果我写了一个取的程序,再写一个存的语句,但这样写的话算同时执行吗? 我的思路有些混乱,帮我理一下,就是程序这里不会写
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
19 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ayayad
2011-06-23
打赏
举报
回复
[Quote=引用 15 楼 trainee 的回复:]
对于数据库,他只接受SQL语句,用PHP写也好,用存储过程写也好,最终执行的都是SQL语句,所以我搞不清楚为什么你还要分PHP事务和数据库事务
[/Quote]
对啊!
我只能这样理解,写PHP事务或存储过程是为了执行操作
写数据库事务是为了防止一旦程序被破坏或改动,影响了原来的PHP事务,而使数据库记录不被破坏
gw6328
2011-06-23
打赏
举报
回复
[Quote=引用 15 楼 trainee 的回复:]
对于数据库,他只接受SQL语句,用PHP写也好,用存储过程写也好,最终执行的都是SQL语句,所以我搞不清楚为什么你还要分PHP事务和数据库事务
[/Quote]
这首歌不错!
trainee
2011-06-23
打赏
举报
回复
对于数据库,他只接受SQL语句,用PHP写也好,用存储过程写也好,最终执行的都是SQL语句,所以我搞不清楚为什么你还要分PHP事务和数据库事务
trainee
2011-06-23
打赏
举报
回复
[Quote=引用 12 楼 ayayad 的回复:]
引用 6 楼 jaylongli 的回复:
程序里 事物控制 本质上就是 代替数据库控制了
最后我再问下,如果我写了PHP事务或者写了存储过程,那么数据库事务还用写吗
[/Quote]
我不知道你所说的数据库事务是什么?
missyesterday
2011-06-23
打赏
举报
回复
[Quote=引用 12 楼 ayayad 的回复:]
引用 6 楼 jaylongli 的回复:
程序里 事物控制 本质上就是 代替数据库控制了
最后我再问下,如果我写了PHP事务或者写了存储过程,那么数据库事务还用写吗
[/Quote]
数据库就不用写了
注意更新语句的where条件
zouyuejian
2011-06-23
打赏
举报
回复
学习了
ayayad
2011-06-23
打赏
举报
回复
[Quote=引用 6 楼 jaylongli 的回复:]
程序里 事物控制 本质上就是 代替数据库控制了
[/Quote]
最后我再问下,如果我写了PHP事务或者写了存储过程,那么数据库事务还用写吗
ayayad
2011-06-23
打赏
举报
回复
也就是说数据库事务只是为了以防万一,可写可不写,但最好写,以防止程序出错而给数据库造成损失
trainee
2011-06-22
打赏
举报
回复
[Quote=引用 8 楼 ayayad 的回复:]
引用 6 楼 jaylongli 的回复:
程序里 事物控制 本质上就是 代替数据库控制了
意思是不是PHP程序里写了事务就不需要再写数据库事务了??
那我要是在数据库里写了事务,程序里不写事务的话,行吗?又该怎么写呢??
[/Quote]
表达有点费解
对数据库来说,事务的控制也是一条条SQL语句, 统一的格式是BEGIN TRANSACTION ... COMMIT/ROLLBACK
你可以将整个事务流程写在一个数据库的存储过程中,也可以一条条写在PHP语句里发送给数据库,也可以一半写在存储过程中,一半写在存储过程外. 对于数据库,没有本质的差别,只是效率的问题
ayayad
2011-06-22
打赏
举报
回复
[Quote=引用 6 楼 jaylongli 的回复:]
程序里 事物控制 本质上就是 代替数据库控制了
[/Quote]
意思是不是PHP程序里写了事务就不需要再写数据库事务了??
那我要是在数据库里写了事务,程序里不写事务的话,行吗?又该怎么写呢??
trainee
2011-06-22
打赏
举报
回复
1, 是啊,
2, 前者高, 因为可减少网络流量
ayayad
2011-06-22
打赏
举报
回复
[Quote=引用 9 楼 trainee 的回复:]
你可以将整个事务流程写在一个数据库的存储过程中,也可以一条条写在PHP语句里发送给数据库,也可以一半写在存储过程中,一半写在存储过程外. 对于数据库,没有本质的差别,只是效率的问题
[/Quote]
不写存储过程就在PHP里写,取和存语句是否一定要写在PHP事务中??
效率的话,是写存储过程高,还是别的高??
ayayad
2011-06-21
打赏
举报
回复
也就是说除了写数据库事务外,PHP里面也要把存和取写成事务并且加锁
没错吧!!是这个意思??
minitoy
2011-06-21
打赏
举报
回复
怎么同时执行?
肯定是一步步做的
chendong_j
2011-06-21
打赏
举报
回复
存取写在1个事务中,出现任何错误都要rollback,全都成功了之后才去commit
qiying1988
2011-06-21
打赏
举报
回复
存取肯定是在一个事务里,而且要加锁,保持一致性。
ACMAIN_CHM
2011-06-21
打赏
举报
回复
[Quote]但我程序里怎么写呢?[/Quote]只能写在同一个事务中,程序中先 BEGIN TRANSACTION, 然后做完所有 取和存 ,然后再 COMMIT
[Quote]如果我写了一个取的程序,再写一个存的语句,但这样写的话算同时执行吗?[/Quote]不算
rucypli
2011-06-21
打赏
举报
回复
没有同时执行 再快也有先后
加油馒头
2011-06-21
打赏
举报
回复
程序里 事物控制 本质上就是 代替数据库控制了
易语言小白入门第一章
这个还是比较清楚简洁的,不是
傻帽
都会吧, 不要怕
tmd_tpl国产PHP模板引擎 v1.0.rar
首先我对美工会学Smarty语法始终保持怀疑态度,至少我工作这么多年还没遇到过
一个
会Smarty语法的, 而就算美工愿意学,你又为何不教他正宗的PHP语法,却要教他一门连你自己搞不清楚的“Smarty语言” 2.可视化 ...
tmd_tpl国产PHP模板引擎 v1.0
首先我对美工会学Smarty语法始终保持怀疑态度,至少我工作这么多年还没遇到过
一个
会Smarty语法的,而就算美工愿意学,你又为何不教他正宗的PHP语法,却要教他一门连你自己搞不清楚的“Smarty语言” 2.可视化当页面...
TMDPHP 模板引擎使用教程
在PHP界谈模板引擎,必不可免的要拿Smarty开刀, 这个无比
傻帽
的却又带有一点点官方色彩的模板引擎, 如果没有我这样人富有正义感又富有创新精神的热血青年站出来, 不知道它还要继续毒害多少那些处于花季而又对PHP...
微信小程序demo:简易聊天室;基于node和websocket
微信越来越
傻帽
了, 微信小程序socket就是接收不到值(而且造成服务器ws模块各种
问题
, 要使调试环境的微信小程序请求nodejs时, nodejs不报错, 必须设置 verifyClient: socketVerify),用原生的 websocket(client文件夹...
MySQL
56,677
社区成员
56,708
社区内容
发帖
与我相关
我的任务
MySQL
MySQL相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MySQL相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章