postgresql ( 9.3.2 ) 可以在添加新列之前检查列的存在吗?我不想仅仅为了检查存在而创建一个函数。
就像这样:
ALTER TABLE IF NOT EXISTS table_name ADD COLUMN column_name data_type;
postgresql ( 9.3.2 ) 可以在添加新列之前检查列的存在吗?我不想仅仅为了检查存在而创建一个函数。
就像这样:
ALTER TABLE IF NOT EXISTS table_name ADD COLUMN column_name data_type;
您需要在 Plpgsql 中编写自己的存储过程来检查表是否有此列。为此,您需要 PG_ATTRIBUTE 和 PG_CLASS 表,其中 Postgres 存储模式元数据,特别是分别关于列和表的信息。
您需要在存储过程中检查其结果的查询将是一个 JOIN,例如:
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' ;
所以,没有这样的查询。我应该使用 PLPGSQL。
在 DDL 中,您只能:
更改表:概要和示例 -> http://www.postgresql.org/docs/9.3/static/sql-altertable.html
对于验证...您需要制作“PL/SQL”