私は記事の使用に関するすべての情報を入れたいテーブルを持っていて、autoincrementを持つ列を作成する必要があります。ID
は同じ値フィールド(tipo
)に別の値がある場合は、この特定の場合に一意ですID
。たとえば:別の列の値に応じて増加する列を作成する方法
ID/TIPO
1 / AJE -- Is Ok
1 / AJS -- Is Ok (because this Tipo is AJS, different from AJE)
1 / SI -- Is Ok
2 / AJE -- Is Ok (New ID)
2 / AJE -- Is Wrong, because ID=2, TIPO=AJE already exist.
は私が独自の文やった:
ALTER TABLE public.art_movimientos
ADD CONSTRAINT uk_mov UNIQUE (id,tipo) USING INDEX TABLESPACE sistema_index;
をしかし、どのように、私は2つの列をカバーする自動インクリメントを作成することができますか?
私のテーブルコード:
CREATE TABLE public.art_movimientos
(
id integer NOT NULL DEFAULT nextval('seq_art_movimientos'::regclass),
tipo character(3) NOT NULL, -- Tipos de Valores:...
documento integer,
fecha_doc date[] NOT NULL,
fecha_mov date[] NOT NULL,
calmacen integer NOT NULL,
status character(13) NOT NULL DEFAULT 'PENDIENTE'::bpchar, -- PENDIENTE...
mes integer NOT NULL,
"año" integer NOT NULL,
donado integer NOT NULL DEFAULT 0
)
WITH (
OIDS=FALSE
);
「しない」と同じですか?シリアル番号は、PKの値がこの場合のテーブルの内容に依存しない場合に便利です。あなたはおそらく 'INSERT INTO art_movimientos SELECT max(id)+ 1、tipo、...よりartmovimientosどこのtipo = '...''より良いでしょう。 – dhke