从唯一检查的时间戳中提取月份和年份?

时间:2012-05-07 16:53:50

标签: sql postgresql

我正在尝试创建一个带有时间戳列的表。问题是,我希望月份和年份组合是唯一的。我尝试了这个,但它没有帮助:

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))
)

如果没有特定的年份和月份列,我怎么能这样做呢?

感谢。

1 个答案:

答案 0 :(得分:3)

快速解决方法:

create unique index on adempiere.SOIP_Deudas ( EXTRACT (MONTH FROM fecha), EXTRACT(YEAR FROM fecha));