Mysql2 :: Ошибка: может быть только один автоматический столбец, и он должен быть определен как ключ - PullRequest
0 голосов
/ 25 декабря 2018

Попытка запустить приложение rails.Я получаю эту ошибку из следующего определения таблицы, указанного коллегой в виде schema.rb.

ActiveRecord::StatementInvalid: Mysql2::Error: Incorrect table definition; there can be only one auto column and it must be defined as a key 

Определение таблицы:

  create_table "wv latest", id: false, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
    t.integer "id", null: false, auto_increment: true
    t.string "cid", limit: 10
    t.integer "visit_id"
    t.string "cfname", limit: 20
    t.string "clname", limit: 25
  end

Когда я удаляю

auto_increment: true

Ошибка исчезает.Почему это происходит и почему схема не работает в моей настройке?

1 Ответ

0 голосов
/ 25 декабря 2018

В сообщении об ошибке указывается, что только столбец может быть автоматически увеличен, и , что этот столбец также должен быть первичным ключом.Итак, попробуйте сделать столбец id первичным ключом:

create_table "wv latest", id: false, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
    t.integer "id", null: false, auto_increment: true, primary_key: true
    t.string "cid", limit: 10
    t.integer "visit_id"
    t.string "cfname", limit: 20
    t.string "clname", limit: 25
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...