3

タイムスタンプ列を持つテーブルを作成しようとしています。問題は、月と年の組み合わせを一意にしたいということです。私はこれを試しましたが、役に立ちません:

CREATE TABLE adempiere.SOIP_Deudas (
    --Columnas del sistema
    SOIP_Deudas_ID      numeric(10)     NOT NULL PRIMARY KEY,
    ad_client_id    numeric(10)     NOT NULL,
    ad_org_id   numeric(10)     NOT NULL,
    updatedby   numeric(10)     NOT NULL,
    createdby   numeric(10)     NOT NULL,
    updated     timestamp       NOT NULL,
    created     timestamp       NOT NULL,
    isactive    char(1)     DEFAULT 'Y'::bpchar NOT NULL,

    --Columnas del usuario
    SOIP_Departamentos_ID numeric(10) NOT NULL,
    fecha       timestamp   NOT NULL,
    monto       real        NOT NULL DEFAULT 0,

    FOREIGN KEY (SOIP_Departamatos_ID) REFERENCES SOIP_Departamentos(SOIP_Departamentos_ID),
    UNIQUE (EXTRACT (MONTH FROM TIMESTAMP fecha), EXTRACT(YEAR FROM TIMESTAMP fecha))
)

特定の年と月の列がなくても、どうすればそれができるか考えていますか?

ありがとう。

4

1 に答える 1

3

簡単な回避策:

create unique index on adempiere.SOIP_Deudas ( EXTRACT (MONTH FROM fecha), EXTRACT(YEAR FROM fecha));
于 2012-05-07T17:03:37.030 に答える