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 回答