Sqlite
列存在時沒有這樣的列
我的數據庫中有一個表(
trackedinfo
),其中包含以下列(通過執行獲得的列PRAGMA table_info(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
我通過執行獲得的資訊
.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);
在上述範例中,**“sendok”**和“ tracked_id ”列名中的空格已被刪除。