好的,我找到了解決方案。我只有圍繞MESSAGE
值與括號:
所以:
IF i>0 THEN
RAISE SQLSTATE '23505' USING MESSAGE = 'la planète est déjà occupée (planet_non_free)=(%, %, %)', NEW.galaxie, NEW.systeme_solaire, NEW.position;
END IF;
變成了:在網絡上的動態MESSAGE
IF i>0 THEN
RAISE SQLSTATE '23505' USING MESSAGE = ('la planète est déjà occupée (planet_non_free)=(%, %, %)', NEW.galaxie, NEW.systeme_solaire, NEW.position);
END IF;
簡單,但我並沒有看到明顯的例子。
希望這有助於
編輯:
好對不起,正確的語法是這樣的一個:
IF i>0 THEN
RAISE SQLSTATE '23505' USING MESSAGE = 'la planète est déjà occupée (planet_non_free)=(' || NEW.galaxie || ',' || NEW.systeme_solaire || ',' || NEW.position || ')';
END IF;
看來,我們不能USING MESSAGE
語句中使用%
。
「不起作用」 不是問題描述。 – melpomene
好吧,我剛剛找到解決方案......用圓括號包圍MESSAGE值,就像這樣:'MESSAGE =('laplanète...,NEW.position);' –
你應該把它寫成答案並接受它。 :-) – melpomene