Sqlite

列存在時沒有這樣的列

  • June 10, 2021

我的數據庫中有一個表(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 ”列名中的空格已被刪除。

引用自:https://dba.stackexchange.com/questions/203156