西西軟件園多重安全檢測下載網(wǎng)站、值得信賴的軟件下載站!
軟件
軟件
文章
搜索

首頁西西教程數(shù)據(jù)庫教程 → MYSQL插入數(shù)據(jù)時(shí)防止重復(fù)命令代碼

MYSQL插入數(shù)據(jù)時(shí)防止重復(fù)命令代碼

相關(guān)文章發(fā)表評(píng)論 來源:本站整理時(shí)間:2010/10/31 11:10:47字體大小:A-A+

作者:佚名點(diǎn)擊:493次評(píng)論:2次標(biāo)簽: MYSQL 插入數(shù)據(jù)

  • 類型:編程輔助大�。�833KB語言:中文 評(píng)分:7.5
  • 標(biāo)簽:
立即下載
insert into songinfo(songname,songtime,songpath) select 'aaa','bb' ,'cc' from dual where not exists(select * from songinfo where songname='123')

//上述命令在MYSQL3.x版本上不能執(zhí)行,5.0.24的可以

比如我的Mysql當(dāng)中某database存在url這張表,現(xiàn)在要有C API 將url,url_hash,domain這三個(gè)變量的值插入到數(shù)據(jù)庫中,url_hash是主鍵,本來為了不至插入重復(fù)項(xiàng),應(yīng)該判斷一下的,現(xiàn)在只要這一條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)) //大部分情況下失敗是由于數(shù)據(jù)庫關(guān)閉,所以可以在以下添加上再連接MySQL的代碼,不贅寫!
{

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

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

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

如下:

1,TRUNCATE TABLE TABLENAME

2,DELETE FROM TABLENAME

    相關(guān)評(píng)論

    閱讀本文后您有什么感想? 已有人給出評(píng)價(jià)!

    • 8 喜歡喜歡
    • 3 頂
    • 1 難過難過
    • 5 囧
    • 3 圍觀圍觀
    • 2 無聊無聊

    熱門評(píng)論

    最新評(píng)論

    發(fā)表評(píng)論 查看所有評(píng)論(2)

    昵稱:
    表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
    字?jǐn)?shù): 0/500 (您的評(píng)論需要經(jīng)過審核才能顯示)