Class: ActiveRecord::Turntable::Sequencer::Mysql
- Inherits:
-
ActiveRecord::Turntable::Sequencer
- Object
- ActiveRecord::Turntable::Sequencer
- ActiveRecord::Turntable::Sequencer::Mysql
- Defined in:
- lib/active_record/turntable/sequencer/mysql.rb
Instance Method Summary collapse
- #current_sequence_value(sequence_name) ⇒ Object
-
#initialize(klass, options = {}) ⇒ Mysql
constructor
A new instance of Mysql.
- #next_sequence_value(sequence_name) ⇒ Object
Methods inherited from ActiveRecord::Turntable::Sequencer
build, has_sequencer?, sequence_name, table_name
Constructor Details
#initialize(klass, options = {}) ⇒ Mysql
Returns a new instance of Mysql.
9 10 11 12 |
# File 'lib/active_record/turntable/sequencer/mysql.rb', line 9 def initialize(klass, = {}) @klass = klass @options = end |
Instance Method Details
#current_sequence_value(sequence_name) ⇒ Object
23 24 25 26 27 28 29 |
# File 'lib/active_record/turntable/sequencer/mysql.rb', line 23 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 |
#next_sequence_value(sequence_name) ⇒ Object
14 15 16 17 18 19 20 21 |
# File 'lib/active_record/turntable/sequencer/mysql.rb', line 14 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 |