【问题标题】:joined UPDATE/INSERT in CI active records在 CI 活动记录中加入 UPDATE/INSERT
【发布时间】:2014-10-08 01:22:40
【问题描述】:

我刚刚在我的办公室伙伴身上看到了您可以使用联接更新的信息?我的问题是您也可以使用 Codeigniter 的活动记录来执行此操作吗?给定以下 SQL 查询:

UPDATE tbl1 JOIN tbl2 ON tbl1.id = tbl2.tbl1_id  
SET tbl1.column2 = "value1", tbl2.column3 = "value1"
WHERE tbl1.column1 = 1;

最后,我需要使用任何特定版本的 mysql 来执行此操作吗?谢谢!

【问题讨论】:

    标签: mysql sql codeigniter activerecord codeigniter-2


    【解决方案1】:

    版本>3.23 的MySQL 支持joined-table UPDATE 语句。你可以用 CI 做到这一点:

    $this->db->set('tbl1.column2', 'value1');
    $this->db->set('tbl2.column3', 'value2');
    $this->db->where('tbl1.column1', 1);
    $this->db->update('tbl1 JOIN tbl2 ON tbl1.id = tbl2.tbl1_id');
    

    【讨论】:

    • 我可以使用 $this->db->trans_start();如果万一从另一个表更新失败?还是不需要?
    • 连接表的更新是一个原子操作。无需交易
    猜你喜欢
    • 1970-01-01
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    • 1970-01-01
    • 2014-06-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多