トリガとシーケンスを使用して自動インクリメントフィールド(SERIALなど)を作成しようとしています。私は、フィールド上のシーケンスまたはSERIAL型を使用することができますが、私はこのトリガとシーケンスを含む自動インクリメントフィールドをPostgresに作成
CREATE SEQUENCE AlimentosSequencia;
CREATE OR REPLACE FUNCTION AlimentoFuncion()
RETURNS "trigger" AS
$BODY$
BEGIN
New.id:=nextval('AlimentosSequencia');
Return NEW;
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE;
CREATE TRIGGER AlimentosTrigger
BEFORE INSERT
ON alimento
FOR EACH ROW
EXECUTE PROCEDURE AlimentoFuncion();
が、私はこの組み合わせを試してみたがdosen't作品(トリガーやsecuences)の両方の方法を使用して解決しなければならないことを知って、テーブルalimentoには2つのフィールドがあり整数ID(トリガとシーケンスによる自動インクリメント)およびvarchar名を指定します。
提案がありますか?
おかげ
「それは機能しません」という説明があります。 –
シンプルなSERIALタイプを使用してみませんか? –
他の目的のために、 'serial'カラムの関連するシーケンスで' nextval() 'を呼び出すことができます。トリガーで物事を複雑にする必要はありません。それを除いて、エラーメッセージなしで、あなたの質問はちょうどノイズです。それを逐語的に含めてください。 –