我们正在从Oracle迁移到Postgresql。在Oracle中,我们有以下唯一索引:
CREATE UNIQUE INDEX USER_UI1 ON USER (LOGINID, COALESCE(DATEDELETED,TO_DATE(' 1900-01-01 00:00:00', ' YYYY-MM-DD HH24:MI:SS')));
当我尝试在Postgresql中创建一个类似的唯一索引时,我得到了ERROR:索引表达式中的函数必须标记为IMMUTABLE
如何在Postgresql中创建类似的唯一索引?
编辑 - 这是我在Postgresql中尝试的语句。
CREATE UNIQUE INDEX USER_UI1 ON USER (LOGINID, COALESCE(DATEDELETED,TO_DATE(' 1900-01-01 00:00:00', ' YYYY-MM-DD HH24:MI:SS')));
Edit2 - 基于klin的评论,有效的陈述是:
CREATE UNIQUE INDEX USER_UI1 ON USER (LOGINID, COALESCE(DATEDELETED, ' 1900-01-01 00:00:00'::DATE));