如何防止将重复项导入HSQL DB?

时间:2017-03-01 15:36:08

标签: java duplicates hsqldb

我无法找到任何解决方案,所以我请求你们帮忙。

如何扩展此声明以便先前完成重复检查:

"INSERT INTO sample_table(str_col,num_col) VALUES('Ford', 100)"

非常感谢!

1 个答案:

答案 0 :(得分:0)

在需要包含唯一值的列上创建UNIQUE索引。如果str_col中的值应该是唯一的,则需要对此列进行约束。

ALTER TABLE sample_table ADD CONSTRAINT unique_c UNIQUE(str_col) 

如果两列的组合需要是唯一的,例如(Ford,100),(Ford,101)你应该添加

ALTER TABLE sample_table ADD CONSTRAINT unique_c UNIQUE(str_col, numb_col) 

当您将重复的值插入表中时,会抛出异常。

如果要避免异常,请使用MERGE语句插入。

MERGE INTO sample_table USING VALUES('Ford', 100)
    WHEN NOT MATCHED THEN INSERT VALUES('Ford', 100)