Search code examples
mysqlrubysequel

How can I get the AUTO_INCREMENT value in Sequel?


In MySQL, I can get the auto-increment value by:

SELECT `AUTO_INCREMENT`
FROM  INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'DatabaseName'
AND   TABLE_NAME   = 'TableName';

How do I query this information in Sequel? When I tried DB.run and DB.get, it didn't seem to work.


Solution

  • If nothing else, Sequel makes it easy to send raw SQL:

    DB["SELECT `AUTO_INCREMENT` FROM  INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'DatabaseName' AND TABLE_NAME = 'TableName'"]
    

    From the documentation:

    Using raw SQL

    DB.run "CREATE TABLE users (name VARCHAR(255) NOT NULL, age INT(3) NOT NULL)"
    dataset = DB["SELECT age FROM users WHERE name = ?", name]
    dataset.map(:age)
    DB.fetch("SELECT name FROM users") do |row|
      p row[:name]
    end