我有一个datagridview,可以成功地将数据从datagrid插入到mysql表中。但它只是插入mysql表中已存在的行。如果我在mysql表中分配主键,它会抛出主键不能重复的错误。任何人都可以通过使用NOT EXISTS,DISTINCT或其他任何东西帮助生成此查询。
我的代码是:
using (MySqlCommand cmd = new MySqlCommand("INSERT INTO markeddeleted VALUES(@product_id, @product_name, @category_id)", con))
答案 0 :(得分:1)
您可以使用以下其中一种:
INSERT IGNORE INTO markeddeleted VALUES(@product_id, @product_name, @category_id)
这会忽略错误(但也会忽略其他错误)。
INSERT INTO markeddeleted (product_id,product_name,category_id) VALUES(@product_id, @product_name, @category_id) ON DUPLICATE KEY UPDATE product_name=@product_name
这将更新存在重复键的行。