我在Oracle数据库表中有行,对于两个字段的组合应该是唯一的,但是没有在表上设置唯一约束,所以我需要使用SQL找到所有违反约束的行.不幸的是,我的微薄SQL技能无法胜任.
我的表有三列相关:entity_id,station_id和obs_year.对于每一行,station_id和obs_year的组合应该是唯一的,我想通过SQL查询将它们刷出来查明是否存在违反此行的行.
我尝试了以下SQL(由前一个问题提出),但它对我不起作用(我得到ORA-00918列模糊定义):
SELECT
entity_id, station_id, obs_year
FROM
mytable t1
INNER JOIN (
SELECT entity_id, station_id, obs_year FROM mytable
GROUP BY entity_id, station_id, obs_year HAVING COUNT(*) > 1) dupes
ON
t1.station_id = dupes.station_id AND
t1.obs_year = dupes.obs_year
Run Code Online (Sandbox Code Playgroud)
有人可以建议我做错了什么,和/或如何解决这个问题?
我在JPA中对userid列强制执行唯一约束检查,该列对用户表中的所有记录强制执行.
@Table(name = "user",
uniqueConstraints = @UniqueConstraint(columnNames = userid))
Run Code Online (Sandbox Code Playgroud)
我的要求是,特定组织中的用户ID需要是唯一的,而不是所有组织.
我该如何执行这样的检查?