MySQL:追加记录:查找然后追加或追加

时间:2010-01-29 17:28:40

标签: mysql database mysql-connector

我正在编写一个用C ++编写的程序,通过MySql C ++ Connector访问MySQL中的表。

我从用户检索记录(通过GUI或Xml文件)。

以下是我的问题:

  1. 我应该首先搜索表格 给定的记录,然后附加如果它 不存在,

  2. 或者追加记录,然后让MySQL 如果记录是唯一的,请追加记录吗?

  3. 这是我的示例表:

    mysql> describe ing_titles;
    +----------+----------+------+-----+---------+-------+
    | Field    | Type     | Null | Key | Default | Extra |
    +----------+----------+------+-----+---------+-------+
    | ID_Title | int(11)  | NO   | PRI | NULL    |       |
    | Title    | char(32) | NO   |     | NULL    |       |
    +----------+----------+------+-----+---------+-------+
    

    在判断中,我正在寻找一种解决方案,使我的程序能够快速响应用户。

    在开发过程中,我有小表(少于5条记录),但我希望它们在我正式发布应用程序时能够增长。

    仅供参考:我在Windows XP和Vista上使用Visual Studion 2008,C ++,wxWidgets和MySQL C ++ Connector。

1 个答案:

答案 0 :(得分:1)

使用UNIQUE约束标记相关字段,并使用INSERT ... ON DUPLICATE KEY UPDATEINSERT IGNORE

如果记录已存在,前者将更新记录,后者将不执行任何操作。

首先搜索表格效率不高,因为它需要两次往返服务器:第一个要搜索,第二个要插入(或更新)。

上面的语法用一句话做同样的事。