首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在cakephp中进行交易

在cakephp中进行交易
EN

Stack Overflow用户
提问于 2010-10-23 19:38:39
回答 2查看 180关注 0票数 0

我如何在cakephp上做这些?

可以将数据从一个表复制到另一个表吗?

下面是我的例子。我有两张桌子,仓库和陈列室。

我的仓库表有(product_id和stock_quantity),陈列室表有(product_id(来自仓库的fk),stock_transferred )..

例如,在仓库表中

代码语言:javascript
复制
product_id     stock_quantity
1              10
2              20

如何在使用showroom表中的stock_quantity(5)传输product_id(1)的同时,仍然保留仓库表中的数据?

因此,在传输数据之后,我的仓库表变成了:

代码语言:javascript
复制
product_id     stock_quantity
1              5
2              20

我的陈列室桌子变成了这样:

代码语言:javascript
复制
product_id     stock_transferred
1              5

例如,我有一个文本输入,用户可以在其中指定他将转移到showroom表中的股票数量。

对不起,我不能很好地解释,我的英语不好。

代码语言:javascript
复制
BEGIN TRAN 

INSERT INTO showroom
SELECT product_id, @ValueToBeReduced FROM warehouse 
WHERE product_id = 1

-- error handling

UPDATE warehouse 
SET stock_quantity = stock_quantity - @ValueToBeReduced
INNER JOIN showroom
ON warehouse.product_id = showroom.product_id
AND showroom.product_id = 1

-- error handling

COMMIT TRAN
EN

回答 2

Stack Overflow用户

发布于 2010-10-23 20:06:40

使用DataSource类的begin()commit()/rollback()方法,或使用Model类的transactional属性。您还可以使用query()方法提供原始SQL查询。

票数 0
EN

Stack Overflow用户

发布于 2010-10-23 23:28:34

这是在cakephp中进行事务处理的基本模板:

代码语言:javascript
复制
$this->Model->begin();
$returnQuery = $this->Model->query($query); // or $returnQuery = $this->Model->save($data);
if($returnQuery !== false){
    $this->Model->commit();
}else{
    $this->Model->rollback();
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4003780

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档