[英]Dropping column with quotation marks in column name
我使用以下命令添加了一個列(我使用了引號,以便 N 在我的列名中大寫)
ALTER TABLE new_table
ADD “Name” VARCHAR(50);
但是,在運行該命令后,我現在在表中看到了“nam”列。
我怎樣才能刪除那列?
ALTER TABLE new_table
DROP COLUMN "Name";
我收到以下錯誤:
錯誤:關系“new_table”的列“name”不存在
以下語句會導致此錯誤:
ALTER TABLE new_table
DROP COLUMN "Name";
似乎您沒有在第一個查詢總線中使用雙引號"
其他一些引號嘗試使用相同的字符“”
ALTER TABLE new_table DROP COLUMN “Name”;
當您在列名中使用雙引號時,檢查 Postgres 如何存儲列名:
select table_name, column_name from information_schema.columns where
table_name='tab1';
此外,當您執行 select 語句時,您可能會看到相同的內容:
select * from table;
在您的alter 語句中復制相同的列名文本。 這是 PostgreSQL 中帶有兩種雙引號的示例列名:
create table tab1(data varchar(30));
alter table tab1 ADD “Name1” varchar(50);
alter table tab1 ADD "Name2" varchar(50);
select *from tab1;
select table_name, column_name from information_schema.columns where table_name='tab1';
alter table tab1 drop column “Name1”;
alter table tab1 drop column "Name2";
table_name column_name
tab1 data
tab1 “name1”
tab1 Name2
這是小提琴的鏈接
注意:避免在表名、列等中使用雙引號。如果使用,您必須確保在所有查詢中指定相同的名稱。
編輯:
這很簡單。 如果在列名稱中使用"Name"
(與“Name”
,注意引號角度),則必須將該列稱為"Name"
。 如果使用“Name”
,則必須通過“Name”
來引用。 引號需要匹配。
另一個觀察結果是,當"Name"
用作列名時,它使列名作為Name
(N 大寫),而不是數據庫中默認的所有小寫列名,但需要被稱為"Name"
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.