我有一个表abonnement
,其中包含列topic
和其他列。我想更新列topic
的值。但在更新之前,我想验证此列是否存在,以便将此脚本与我团队中的其他开发人员一起使用。如果存在,我会更新,否则,我必须创建此列并在更新后。
这是我的剧本:
IF EXISTS (select topic from abonnement)
then
update abonnement set topic ='valeurTopic';
else
ALTER TABLE abonnement ADD COLUMN topic character varying;
update abonnement set topic= 'valeurTopic';
end if;
我有一个错误:
ERREUR: erreur de syntaxe sur ou près de « IF »
LINE 1: IF EXISTS (SELECT topic
^
有任何解决方案吗?
答案 0 :(得分:0)
我会改变逻辑:
DO $$
BEGIN
BEGIN
ALTER TABLE <table_name> ADD COLUMN <column_name> <column_type>;
EXCEPTION
WHEN duplicate_column THEN
UPDATE <table_name> SET <column_name> = 'valeurTopic';
END;
END; $$
获得了代码