我正在使用winform,并设置了一个计时器,以便我的表每5分钟更新一次。每隔5分钟,将来自table1的数据插入到table2中。但我不希望同一行插入两次。这不是用户输入,所以我甚至不能进行验证。我写了一个查询,但它不起作用。我知道我的写作方式是错误的。请纠正我的查询。避免重复行
我不想要程序。我只想以相同的方式查询。
using (SqlConnection conn = new SqlConnection(@"Data Source=DIPAYN;Initial Catalog=Highway;Integrated Security=True"))
{
using (SqlCommand cmd = new SqlCommand())
{
cmd.Connection = conn;
cmd.CommandText = "INSERT Alert(vehicle_no) SELECT vehicle_no FROM Entry WHERE next_expected_time <= GetDate() AND WHERE NOT EXISTS(select alert_id from Alert where alert_id = vehicle_no) ";
try
{
conn.Open();
Error = cmd.ExecuteNonQuery();
}
catch
{
Error = -1;
}
finally { conn.Close(); }
}
}
刚上添加唯一约束表 – Strawberry
这两个表都有主键entry_id和alert_id。如果Entry表中的next_expected_time小于Get Date,那么只有它应该更新。但是你看,在下一次迭代中,条件将仍然相同。它将再次小于GetDate并再次插入。我只是想第二次避开它。我不认为你了解我。请尝试:( – Dee
'请尝试' - 有趣的 – Strawberry