public function update($data, Criteria $where, $limit=false)
    {
        if(empty($data))
            throw new Exception("Can't insert an empty row");

        return $this->_connection->execute(sprintf(
            'UPDATE %s SET %s WHERE %s%s',
            $this->_name->quoted(),
            $this->_buildSet($data),
            $where,
            $limit ? ' LIMIT '.intval($limit) : ''
            ), array_values($data)
        );
    }