Sha256: 4485f1b5f84d69fd85d38d183a04cef84cb4f7147601e82ce9c91cedcbeb1f06
Contents?: true
Size: 936 Bytes
Versions: 4
Compression:
Stored size: 936 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 "BEGIN" conn.execute "UPDATE #{@klass.connection.quote_table_name(sequence_name)} SET id=LAST_INSERT_ID(id+1)" conn.execute "COMMIT" 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) res = @klass.connection.seq.connection.execute("SELECT id FROM #{@klass.connection.quote_table_name(sequence_name)} LIMIT 1") current_id = res.first.first.to_i return current_id end end end end
Version data entries
4 entries across 4 versions & 1 rubygems