postgresql(9.3.2)可以在添加新列之前檢查列的存在嗎? 我不想創建一個函數來檢查是否存在。添加列如果在Postgresql中不存在
只需簡單地像這樣:
ALTER TABLE IF NOT EXISTS table_name ADD COLUMN column_name data_type;
postgresql(9.3.2)可以在添加新列之前檢查列的存在嗎? 我不想創建一個函數來檢查是否存在。添加列如果在Postgresql中不存在
只需簡單地像這樣:
ALTER TABLE IF NOT EXISTS table_name ADD COLUMN column_name data_type;
你需要寫PLPGSQL自己的存儲過程來檢查表中有此列。爲此,您需要PG_ATTRIBUTE和PG_CLASS表,其中Postgres分別存儲模式元數據,特別是有關列和表的信息。
查詢,其結果,你需要在你的存儲過程,以檢查將是一個連接,如:
SELECT A.ATTNAME FROM PG_ATTRIBUTE A, PG_CLASS C
WHERE A.ATTRELID = C.OID AND A.ATTNAME = 'column_name_check_if_exists' AND C.relname= 'table_name' ;
在DDL,你只能:
ALTER TABLE:概要和示例 - >http://www.postgresql.org/docs/9.3/static/sql-altertable.html
爲了驗證...你需要做「PL/SQL「
所以答案是否定的。 – postgreat
這不重複。那篇文章使用FUNCTION(PLPGSQL),我只需要SQL腳本。 – postgreat
我在接受的答案中沒有看到任何功能。 –
也有'EXIST()'你可以用來編寫你的函數的解決方案。 – ckruse