ムーのしょ〜もない様でしょ〜もなくもないブログ

プログラミング未経験だけど、エンジニアになりたい、IT関係の仕事がしたい方向けに情報を発信しています!あっ!けどプログラミング以外にも皆さんに有益になる様な情報も発信しますよー!

Ruby On Rails SQLite テーブルの作成

postsテーブルを作ったが、postsテーブルを削除して

もう一回作り直した時のメモです!

まずは

$ rails dbconsole

そして

sqlite> create table posts(id integer primary key, content text, image text);

作られたか確認

sqlite> select * from posts;
id            content         image
--------     --------------   -----------


sqlite>

テーブルの中身にもうデータを入れてしまったので

その時の状態をコピーできなかったから

確認した時は確かこんな感じだった気が(/ _ ; )


テーブルを作る時のINTEGER PRIMARY KEY

データを追加した時にカラムの値を指定しないと自動的に値が格納され

自動的に格納される値は、対象のカラムに格納されている

最大の値に1を加えた値となります。

この値は以前に割り当てられたことがあるかどうか関係がないため、

データの追加と削除を繰り返していると以前に格納されたことがある値

が再度カラムに格納される場合があります。


どーゆー事かとゆうと、INTEGER PRIMARY KEYを設定しなかったら

DBの中身を削除してから新しくデータを追加した時に

idが削除したはずの次のidから保存されてしまう。

???

よく分からん説明だ!

もうちょっと噛み砕いてゆうと

10個のデータを削除した

削除した10のデータはid1~10になっている

そして新しくデータを10個追加したら普通はidがまた1~10で登録されるはずが

id11~20で登録されてしまうとゆう事!

これを回避する為にINTEGER PRIMARY KEYを設定してあげると

新しくデータを追加した場合idが1~10に登録されるみたい!

それをしたくてINTEGER PRIMARY KEYで設定したらしっかりと、元から保存されました(☝︎ ՞ਊ ՞)☝︎