用户
 找回密码
 入住 CI 中国社区
搜索
查看: 1876|回复: 1
收起左侧

[HELP] 有个比较BT的需求,求指教。

[复制链接]
发表于 2012-10-23 22:59:51 | 显示全部楼层 |阅读模式
数据库中有一条复合唯一索引。要求插入数据时不重复插入,而且还要返回每个插入的id 、如果需要插入的数据和数据库中复合索引有冲突,则返回已经插入的id 、这个应该怎么搞?我找半天找出不重复插入了,但是如何获取id 犯难了。

INSERT IGNORE INTO `user_prop` (`dev_id`, `prop_id`, `prop_type`, `issue_datetime`, `end_datetime`) VALUES ('{$v['dev_id']}', '{$v['prop_id']}', '{$v['prop_type']}', {$v['issue_datetime']}, {$v['end_datetime']})

这个是一次性插入数据,而且还不重复,不冲突的方法1

    $sql = $this->db->insert_string('user_prop',$v);
    $sql .= "ON DUPLICATE KEY UPDATE issue_datetime = {$v['end_datetime']} ;";
    $rs = $this->db->query("set sql_mode=''");
    $r_data[] = $this->db->query($sql);

这个是方法二、 符合索引是 dev_id + prop_id + issue_datetime

求指教......
发表于 2012-10-24 00:05:15 | 显示全部楼层
好像有个$this->db->replace()可以实现你的想法

本版积分规则