MySQL插入如果不存在/忽略

时间:2012-06-05 17:19:22

标签: c# mysql insert exists ignore

所以基本上这是我的桌面布局:

Type_Of     Agreement
iPad        Heyo! I'm an agreement!
iPod Touch  I'm another agreement!

基本上,我正在构建一个管理员界面,管理员可以在其中添加新类型。我希望它能够让他/她无法进入已经存在的新类型。基本上,在上面的例子中,如果他们要在新类型框中输入“iPad”并按下提交,它将被简单地忽略或者会抛出错误或其他东西。

这是我现有的MySQL声明:

INSERT IGNORE INTO agreements (Type_Of, Agreement) VALUES (?, ?)
com.Parameters.AddWithValue("", Request.Form["pies"]);
com.Parameters.AddWithValue("", "Wahey! A sample license!");

1 个答案:

答案 0 :(得分:1)

升级到答案

您需要在UNIQUE上定义Type_Of索引。如the manual中所述:

  

UNIQUE索引创建一个约束,使索引中的所有值必须是不同的。如果您尝试添加具有与现有行匹配的键值的新行,则会发生错误。对于所有引擎,UNIQUE索引允许包含NULL的列的多个NULL值。如果为UNIQUE索引中的列指定前缀值,则列值在前缀中必须是唯一的。

因此:

ALTER TABLE agreements ADD UNIQUE INDEX (Type_Of);