首頁 > 資料庫 > mysql教程 > 為什麼我的 PostgreSQL DELETE 查詢失敗並顯示'列不存在”?

為什麼我的 PostgreSQL DELETE 查詢失敗並顯示'列不存在”?

Mary-Kate Olsen
發布: 2024-12-18 00:29:08
原創
719 人瀏覽過

Why Does My PostgreSQL DELETE Query Fail with

PostgreSQL DELETE 查詢中不存在欄位

在PostgreSQL 中,執行帶有「WHERE IN」子句的DELETE 需要特別注意。由於熟悉其他 SQL 方言而導致的一個常見錯誤是對字串常數使用雙引號。

在提供的範例中,查詢嘗試根據ID 清單從「user_job_titles」表中刪除資料列用雙引號括起來:

DELETE FROM user_job_titles
WHERE id IN (
"c836d018-1d12-4507-a268-a4d80d6d3f54",
"d0961a90-7d31-4c4c-9c1b-671115e3d833",
"62dda420-6e62-4017-b41d-205c0aa82ead"
);
登入後複製

但是,雙引號在PostgreSQL 中具有特殊意義。它們用於轉義表名和列名。因此,查詢失敗,並顯示錯誤,指出名稱為「c836d018-1d12-4507-a268-a4d80d6d3f54」的欄位不存在。

要修復查詢,請將雙引號替換為單引號對於字串常數:

DELETE FROM user_job_titles
WHERE id IN ('c836d018-1d12-4507-a268-a4d80d6d3f54',
             'd0961a90-7d31-4c4c-9c1b-671115e3d833',
             '62dda420-6e62-4017-b41d-205c0aa82ead'
            );
登入後複製

記住,雙引號僅用於括起來PostgreSQL 中的表名和列名,而單引號用於字串文字。使用正確的參考類型對於正確執行 SQL 查詢至關重要。

以上是為什麼我的 PostgreSQL DELETE 查詢失敗並顯示'列不存在”?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板