Sha256: b9e898d816c8b467bc8ae270cf5e596b0fabbffc132f688dfdc044560454d82b

Contents?: true

Size: 954 Bytes

Versions: 24

Compression:

Stored size: 954 Bytes

Contents

# -*- coding: utf-8 -*-
#
# 採番
#

module ActiveRecord::Turntable
  class Sequencer
    class Mysql < Sequencer
      def initialize(klass, options = {})
        @klass = klass
        @options = options
      end

      def next_sequence_value(sequence_name)
        conn = @klass.connection.seq.connection
        conn.execute "UPDATE #{@klass.connection.quote_table_name(sequence_name)} SET id=LAST_INSERT_ID(id+1)"
        res = conn.execute("SELECT LAST_INSERT_ID()")
        new_id = res.first.first.to_i
        raise SequenceNotFoundError if new_id.zero?
        return new_id
      end

      def current_sequence_value(sequence_name)
        conn = @klass.connection.seq.connection
        conn.execute "UPDATE #{@klass.connection.quote_table_name(sequence_name)} SET id=LAST_INSERT_ID(id)"
        res = conn.execute("SELECT LAST_INSERT_ID()")
        current_id = res.first.first.to_i
        return current_id
      end
    end
  end
end

Version data entries

24 entries across 24 versions & 1 rubygems

Version Path
activerecord-turntable-2.5.0 lib/active_record/turntable/sequencer/mysql.rb
activerecord-turntable-2.4.0 lib/active_record/turntable/sequencer/mysql.rb
activerecord-turntable-2.3.3 lib/active_record/turntable/sequencer/mysql.rb
activerecord-turntable-2.3.2 lib/active_record/turntable/sequencer/mysql.rb
activerecord-turntable-2.3.1 lib/active_record/turntable/sequencer/mysql.rb
activerecord-turntable-2.3.0 lib/active_record/turntable/sequencer/mysql.rb
activerecord-turntable-2.2.2 lib/active_record/turntable/sequencer/mysql.rb
activerecord-turntable-2.2.1 lib/active_record/turntable/sequencer/mysql.rb
activerecord-turntable-2.2.0 lib/active_record/turntable/sequencer/mysql.rb
activerecord-turntable-2.1.1 lib/active_record/turntable/sequencer/mysql.rb
activerecord-turntable-2.1.0 lib/active_record/turntable/sequencer/mysql.rb
activerecord-turntable-2.1.0.rc2 lib/active_record/turntable/sequencer/mysql.rb
activerecord-turntable-2.1.0.rc1 lib/active_record/turntable/sequencer/mysql.rb
activerecord-turntable-2.1.0.beta2 lib/active_record/turntable/sequencer/mysql.rb
activerecord-turntable-2.1.0.beta1 lib/active_record/turntable/sequencer/mysql.rb
activerecord-turntable-2.0.6 lib/active_record/turntable/sequencer/mysql.rb
activerecord-turntable-2.0.5 lib/active_record/turntable/sequencer/mysql.rb
activerecord-turntable-2.0.4 lib/active_record/turntable/sequencer/mysql.rb
activerecord-turntable-2.0.3 lib/active_record/turntable/sequencer/mysql.rb
activerecord-turntable-2.0.2 lib/active_record/turntable/sequencer/mysql.rb