为文件管理器重复数据创建触发器或约束

时间:2017-07-25 20:19:18

标签: mysql sql database triggers constraints

如何创建触发器或约束以过滤之后将要输入到数据库中的重复数据。 重复意味着 sensor_id 时间都相同。

例如,现在表格是

rain_gage   sensor_id   time
2.434       6000        2017-07-24 14:23:55
5.324       6010        2017-07-24 09:12:22

现在我通过Spring boot的存储库将新数据插入到表中。

rain_gage   sensor_id   time
2.434       6000        2017-07-24 14:23:55
5.324       6010        2017-07-24 10:23:19

我希望触发器或约束过滤器行(2.434,6000,2017-07-24 14:23:55)。

然后表格将是

rain_gage   sensor_id   time
2.434       6000        2017-07-24 14:23:55
5.324       6010        2017-07-24 09:12:22
5.324       6010        2017-07-24 10:23:19

BTW,我使用MySQL数据库。

1 个答案:

答案 0 :(得分:0)

如果表已经创建,则需要更改表以在必填字段上添加UNIQUE约束。

ALTER TABLE <Table-Name> ADD CONSTRAINT <Constraint-Name> UNIQUE (SENSOR_ID, TIME);

也可以在创建表时添加UNIQUE约束。

CREATE TABLE <Table-Name> (
    ....
    CONSTRAINT <Constraint-Name> UNIQUE (SENSOR_ID, TIME)
);

这将确保仅插入唯一记录。重复记录发生的任何异常都必须妥善处理。