データベース内に次の列(PRAGMA table_info(trackedinfo);
を実行して取得した列)があるテーブル(trackedinfo
)があります
問題は、列sendok
が存在しても、そのフィールドを使用してデータベースでクエリを実行すると、エラーがスローされることです。
クエリ例:
SELECT * FROM trackedinfo WHERE sendok IS NULL;
SELECT sendok FROM trackedinfo;
エラー:
SQLITE_ERROR: SQL error or missing database (no such column: sendok)
しかし、すべてのフィールドを選択するクエリを実行すると、sendok
に関する情報が表示されます。
これはデータベースのCREATE
コマンドです:
CREATE TABLE trackedinfo
(
id INTEGER PRIMARY KEY,
date_time_start TEXT,
date_time_end TEXT,
tracked_name TEXT,
tracked_Origin TEXT,
tracked_maker TEXT,
tracked_version TEXT,
tracked_type TEXT,
sendok TEXT,
tracked_id TEXT
);
[〜#〜]編集[〜#〜]
列tracked_id
でも発生します
EDIT 2
.schema trackedinfo
を実行して得た情報
CREATE TABLE IF NOT EXISTS "trackedinfo" ("id" INTEGER PRIMARY KEY, "date_time_start" TEXT, "date_time_end" TEXT, "tracked_name" TEXT, "tracked_Origin" TEXT, "tracked_maker" TEXT, "tracked_version" TEXT, "tracked_type" TEXT, "sendok " TEXT, "tracked_id " TEXT);
問題は、列の名前の末尾にスペースがあったことです。そのようなスペースを削除することで問題を解決しました。
変更前:
CREATE TABLE IF NOT EXISTS "trackedinfo" ("id" INTEGER PRIMARY KEY, "date_time_start" TEXT, "date_time_end" TEXT, "tracked_name" TEXT, "tracked_Origin" TEXT, "tracked_maker" TEXT, "tracked_version" TEXT, "tracked_type" TEXT, "sendok " TEXT, "tracked_id " TEXT);
後:
CREATE TABLE IF NOT EXISTS "trackedinfo" ("id" INTEGER PRIMARY KEY, "date_time_start" TEXT, "date_time_end" TEXT, "tracked_name" TEXT, "tracked_Origin" TEXT, "tracked_maker" TEXT, "tracked_version" TEXT, "tracked_type" TEXT, "sendok" TEXT, "tracked_id" TEXT);