1
1

AUTO_INCREMENTで正しくインクリメントされない

Posted at

C#の勉強の中でSQLiteを使ってたら、主キーかつAUTO_INCREMENTを実現するのに無駄に時間がかかったのでそれについて。

ハマったこと

SQLiteを使って下のコードでidが主キーかつAUTO_INCREMENTなテーブルを作成したつもりが、レコードを追加してもインクリメントされなかった。

失敗コード
CREATE TABLE hoge(
    id INTEGER AUTO_INCREMENT PRIMARY KEY,
    //他のフィールド
)

解決策

SQLiteではPRIMARY KEYを設定したら勝手にオートインクリメントになるらしく、AUTO_INCREMENTを付ける必要がなかった。消したらうまくいった。(別に付けても動いてくれて良くないか???)

成功コード
CREATE TABLE hoge(
    id INTEGER PRIMARY KEY,
    //他のフィールド
)

まとめ

SQLiteで主キーかつAUTO_INCREMENTにするときは、PRIMARY KEYだけ付ければよい(MySQLでは両方書く必要がありそうなので、違いに注意)。

1
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1