我正在编写一个用C ++编写的程序,通过MySql C ++ Connector访问MySQL中的表。
我从用户检索记录(通过GUI或Xml文件)。
以下是我的问题:
我应该首先搜索表格 给定的记录,然后附加如果它 不存在,
或者追加记录,然后让MySQL 如果记录是唯一的,请追加记录吗?
这是我的示例表:
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。
答案 0 :(得分:1)
使用UNIQUE
约束标记相关字段,并使用INSERT ... ON DUPLICATE KEY UPDATE
或INSERT IGNORE
。
如果记录已存在,前者将更新记录,后者将不执行任何操作。
首先搜索表格效率不高,因为它需要两次往返服务器:第一个要搜索,第二个要插入(或更新)。
上面的语法用一句话做同样的事。