如何创建触发器或约束以过滤之后将要输入到数据库中的重复数据。 重复意味着 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数据库。
答案 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)
);
这将确保仅插入唯一记录。重复记录发生的任何异常都必须妥善处理。