我正在研究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(); }
}
}
答案 0 :(得分:0)
您可以说当找到重复时,请更新
INSERT INTO table (a,b,c) VALUES (1,2,3)
ON DUPLICATE KEY UPDATE c=c+1;
编辑: 如果你只是想错过重复
INSERT IGNORE INTO table (a,b,c) VALUES (1,2,3);