避免重复行

时间:2017-05-06 08:24:29

标签: mysql

我正在研究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(); }
            }
        }

1 个答案:

答案 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);