最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL生產(chǎn)庫Insert了2次同樣的記錄但是主鍵ID是不一樣的問題的分析過程

 更新時間:2014年02月20日 17:33:27   作者:  
這篇文章主要介紹了MySQL生產(chǎn)庫Insert了2次同樣的記錄但是主鍵ID是不一樣的問題的分析過程,需要的朋友可以參考下

Email里面收到朋友laopan的求助

laopan:
insert into HudsonResult(JobID,EnvironmentID,FirstSessionID,RerunSessionID,State,Desp,OtherInfo) values
((select ID from Hudson where Stream='A7510_R52_Integration' and State='N' and pakName='needCompile' and User='jinhaiz'),0,'N','N','N','smoke_test','')
如果相同的記錄不存在就執(zhí)行上面這條insert命令,防止執(zhí)行是insert兩次。
這個語句該怎么寫?

能明白不?
現(xiàn)在有個問題就是insert了2次同樣的記錄但是主鍵ID是不一樣的。

me :
如果是mysql數(shù)據(jù)庫的話:

1 如果你表中有唯一健的話,可以通過這個唯一健來進(jìn)行賽選的。
2 如果沒有唯一健的話,你需要有判斷數(shù)據(jù)是否重復(fù)的條件,根據(jù)這個條件先select出來,看是否存在,如果不存在就insert,如果存在要么覆蓋要么就忽略掉不執(zhí)行,這個過程需要多條sql語句,最好開啟事務(wù)來進(jìn)行控制。

Mysql中有一個replace以及Insert into ..... on duplicate key update 來判斷對重復(fù)數(shù)據(jù)進(jìn)行insert或者update的,但是這是依據(jù)主健或者唯一健來判斷的。你可以參考下下面這篇文章(http://www.fzitv.net/article/47090.htm)。


laopan:
1.唯一鍵怎么篩選?現(xiàn)在的問題是唯一的不同是key不一樣,別的列都是一樣的。

me :
把表結(jié)構(gòu)發(fā)給我,我看看 , 通過執(zhí)行 命令  show create table HudsonResult;  可以得出表結(jié)構(gòu)。
如果沒有唯一健的話,就不能從sql層面去判斷數(shù)據(jù)的唯一性,否則資源消耗太大了。需要從應(yīng)用角度數(shù)據(jù)來源角度去驗證過濾。

laopan:

mysql> show create table HudsonResult;
+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table        | Create Table                                                                                                                                                                                                                                                                                                  
+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| HudsonResult | CREATE TABLE `HudsonResult` (
  `JobID` int(32) NOT NULL,
  `EnvironmentID` int(32) NOT NULL,
  `FirstSessionID` varchar(100) default NULL,
  `RerunSessionID` varchar(100) default NULL,
  `State` varchar(5) default NULL,
  `ID` int(32) NOT NULL auto_increment,
  `Desp` varchar(100) default NULL,
  `ExecNum` int(32) default NULL,
  `FailNum` int(32) default NULL,
  `ATCStartTime` datetime default NULL,
  `ATCEndTime` datetime default NULL,
  `FocNumBefore` int(32) default '0',
  `FocNumAfter` int(32) default '0',
  `Priority` int(32) default '0',
  `FocDesp` varchar(5000) default '',
  `OtherInfo` varchar(100) default NULL,
  PRIMARY KEY  (`ID`)
) ENGINE=MyISAM AUTO_INCREMENT=14910 DEFAULT CHARSET=latin1 |
+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

現(xiàn)在的問題背景是這樣的,網(wǎng)頁上insert后,電腦卡了一下,這個時候還沒有返回,又點了一下,變成又insert了一次,導(dǎo)致2條記錄
內(nèi)容是一樣的,但是主鍵是不一樣的,java你也做過,有沒有啥想法,避免這個?

ME :
把提交按鈕做下處理,很簡單的,提交一次后,按紐設(shè)置為灰色的,操作者點擊不了,只有等待提交處理結(jié)果出來繼續(xù)進(jìn)行下一步操作。

laopan:

搞定了,呵呵,簡單易用哈,考慮多了,謝啦。

總結(jié):可見有很多時候錯誤數(shù)據(jù)都是由于應(yīng)用的bug導(dǎo)致的,清理數(shù)據(jù)的同時要從根源處理問題,數(shù)據(jù)層面的sql能不動盡量不要動。

相關(guān)文章

  • mysql中update和select結(jié)合使用方式

    mysql中update和select結(jié)合使用方式

    這篇文章主要介紹了mysql中update和select結(jié)合使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • 淺談為什么MySQL不建議delete刪除數(shù)據(jù)

    淺談為什么MySQL不建議delete刪除數(shù)據(jù)

    這篇文章主要介紹了淺談為什么MySQL不建議delete刪除數(shù)據(jù),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • mysql之查詢兩個時間段是否有交集的情況

    mysql之查詢兩個時間段是否有交集的情況

    這篇文章主要介紹了mysql之查詢兩個時間段是否有交集的情況,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • MySQL數(shù)據(jù)庫引擎介紹、區(qū)別、創(chuàng)建和性能測試的深入分析

    MySQL數(shù)據(jù)庫引擎介紹、區(qū)別、創(chuàng)建和性能測試的深入分析

    本篇文章是對MySQL數(shù)據(jù)庫引擎介紹、區(qū)別、創(chuàng)建和性能測試進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • mysql中的sql_mode模式實例詳解

    mysql中的sql_mode模式實例詳解

    這篇文章主要介紹了mysql中的sql_mode模式,結(jié)合實例形式詳細(xì)分析了mysql sql_mode模式相關(guān)原理、用法及操作注意事項,需要的朋友可以參考下
    2020-01-01
  • MySQL命令行連接方式

    MySQL命令行連接方式

    這篇文章主要介紹了MySQL命令行連接方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-09-09
  • MySQL優(yōu)化方案參考

    MySQL優(yōu)化方案參考

    今天小編就為大家分享一篇關(guān)于MySQL優(yōu)化方案參考,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • mysqld-nt: Out of memory (Needed 1677720 bytes)解決方法

    mysqld-nt: Out of memory (Needed 1677720 bytes)解決方法

    這篇文章主要介紹了mysqld-nt: Out of memory (Needed 1677720 bytes)解決方法,需要的朋友可以參考下
    2014-12-12
  • mysql中xtrabackup全量備份/增量備份及恢復(fù)

    mysql中xtrabackup全量備份/增量備份及恢復(fù)

    本文詳細(xì)介紹了使用XtraBackup工具進(jìn)行MySQL數(shù)據(jù)庫的全量備份、增量備份以及恢復(fù)的詳細(xì)步驟,文章詳細(xì)列出了所需目錄結(jié)構(gòu)、配置文件和命令,為數(shù)據(jù)庫管理員提供了一套完整的備份恢復(fù)解決方案
    2024-09-09
  • mysql中如何優(yōu)化表釋放表空間

    mysql中如何優(yōu)化表釋放表空間

    這篇文章主要介紹了mysql中如何優(yōu)化表釋放表空間問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02

最新評論

西宁市| 泗阳县| 汾西县| 慈利县| 高邑县| 靖边县| 普宁市| 邹平县| 九龙县| 南阳市| 永济市| 杭州市| 社会| 寿光市| 郎溪县| 辉南县| 兰溪市| 澜沧| 贵南县| 新平| 仪陇县| 镇赉县| 都江堰市| 通山县| 科技| 松潘县| 乡宁县| 清流县| 宝坻区| 繁昌县| 大新县| 临泉县| 连平县| 阿瓦提县| 美姑县| 万荣县| 湖北省| 望奎县| 龙州县| 伽师县| 新密市|