就下载 —— 安全下载、无毒手机软件、绿色软件官方下载网站最近更新|下载排行|热门标签|收藏本站

您现在的位置是:就下载 > IT资讯 > 软件教程 > MYSQL插入数据时防止重复命令代码

insert into songinfo(songname,songtime,songpath) select 'aaa','bb' ,'cc' from dual where not exists(select * from songinfo where songname='123')

//上述命令在MYSQL3.x版本上不能执行,5.0.24的可以

比如我的Mysql当中某database存在url这张表,现在要有C API 将url,url_hash,domain这三个变量的值插入到数据库中,url_hash是主键,本来为了不至插入重复项,应该判断一下的,现在只要这一条SQL语句就行了,什么都不要管,减少了大量的查询和判断工作,我只能说一句:太爽了。如下:

SQL语句:
insert into TABLE(FIELD0,FIELD1...) select VALUE0,VALUE1 ,... from dual where not exists(select * from TABLE where FIELDN=VALUEN)

代码:
int store_url(char *url)
{
char *key, url_hash[HASHLEN], domain[DOMAINLEN], sqlstr[SQLSTRLEN];

......

sprintf (sqlstr, "insert into url(url,url_hash,domain) select '%s','%s','%s' from dual where not exists(select * from url where url_hash='%s') ", url, url_hash, domain, url_hash);
if (mysql_query (conn, sqlstr)) //大部分情况下失败是由于数据库关闭,所以可以在以下添加上再连接MySQL的代码,不赘写!
{

printf ("Error:%s\n", mysql_error (conn));
return;
}
}

清空表,在SQL和ACCESS中一般是delete * from tablename

而在MySQL中上述命令是不受支持的,

如下:

1,TRUNCATE TABLE TABLENAME

2,DELETE FROM TABLENAME

上一篇:智能手机大盘点

本文地址:软件教程 >> http://www.9xz.net/it/ruanjianjiaocheng/20251.html

下一篇:MediaCoder NT CUDA加速版安装使用图文教程

  • 打印
推荐阅读
热门专题
推荐内容
热点内容