私はテーブルabonnement
とカラムtopic
と他のカラムを持っています。私は列の値を更新したいtopic
。しかし、更新する前に、私はこの列が存在するかどうかを確認して、私のチームの他の開発者とこのスクリプトを使用したいと思っています。存在する場合、私は更新する、そうでなければ、私はこの列を作成し、更新後にする必要があります。ここで は私のスクリプトです:update/exist column Postgresql
ERREUR: erreur de syntaxe sur ou près de « IF »
LINE 1: IF EXISTS (SELECT 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;
私はエラーが発生しましたか?
からコードを得ました。 –
私は彼らが 'if'を使うときにいくつかのスクリプトを見たので。それ以外はどうすれば解決できるの? – josef
そのような回避策を実装する代わりに、スキーマの変更を展開する方法を変更する必要があります。列が存在するかどうかわからないということは、スキーマ移行を管理および展開するための適切なプロセスがないことを示します。 LiquibaseやFlywayのようなツールをチェックしてください。データベースが定義された状態になっていることを確認することは、はるかに良い解決策です。 –