Chinaunix首页 | 论坛 | 博客
  • 博客访问: 534675
  • 博文数量: 142
  • 博客积分: 2966
  • 博客等级: 少校
  • 技术积分: 1477
  • 用 户 组: 普通用户
  • 注册时间: 2009-12-07 22:37
文章分类

全部博文(142)

文章存档

2013年(3)

2012年(21)

2011年(53)

2010年(33)

2009年(32)

分类: Mysql/postgreSQL

2011-03-29 10:46:28

近期要做一个小程序,数据库要保存一部分数据,
其中当然会有重复数据..当在insert的时候就会报主键冲突的错误..
 
当程序中insert时,已存在的数据不插入,不存在的数据insert。在网上搜了下,
可以使用存储过程或者是用NOT EXISTS 来判断是否存在。
使用下以两种方法时必须把字段设为”主键(PRIMARY KEY”或”唯一约束(UNIQUE)”。

1:使用REPLACE INTO (此种方法是利用替换的方法,有点似类于先删除再插入)
REPLACE INTO Syntax
REPLACE [LOW_PRIORITY | DELAYED]
    [INTO] tbl_name [(col_name,...)]
    {VALUES | VALUE} ({expr | DEFAULT},…),(…),…
Or:
REPLACE [LOW_PRIORITY | DELAYED]
    [INTO] tbl_name
    SET col_name={expr | DEFAULT}, …
Or:
REPLACE [LOW_PRIORITY | DELAYED]
    [INTO] tbl_name [(col_name,...)]
    SELECT …

2:使用INSERT [IGNORE] INTO (此种方法效率比较高,判断是否存在,存在不插入,否则插入)
INSERT [IGNORE] INTO Syntax
INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]
[INTO] tbl_name [(col_name,...)]
{VALUES | VALUE} ({expr [...]
 
mysql文档
阅读(3260) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~