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

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

 更新時(shí)間: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兩次。
這個(gè)語句該怎么寫?

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

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

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

Mysql中有一個(gè)replace以及Insert into ..... on duplicate key update 來判斷對重復(fù)數(shù)據(jù)進(jìn)行insert或者update的,但是這是依據(jù)主健或者唯一健來判斷的。你可以參考下下面這篇文章(http://m.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ù)來源角度去驗(yàn)證過濾。

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后,電腦卡了一下,這個(gè)時(shí)候還沒有返回,又點(diǎn)了一下,變成又insert了一次,導(dǎo)致2條記錄
內(nèi)容是一樣的,但是主鍵是不一樣的,java你也做過,有沒有啥想法,避免這個(gè)?

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

laopan:

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

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

相關(guān)文章

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

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

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

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

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

    mysql之查詢兩個(gè)時(shí)間段是否有交集的情況

    這篇文章主要介紹了mysql之查詢兩個(gè)時(shí)間段是否有交集的情況,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    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模式實(shí)例詳解

    mysql中的sql_mode模式實(shí)例詳解

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

    MySQL命令行連接方式

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

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

    今天小編就為大家分享一篇關(guān)于MySQL優(yōu)化方案參考,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    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)化表釋放表空間問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02

最新評論

辛集市| 苏州市| 兰坪| 辛集市| 厦门市| 镇坪县| 红原县| 武邑县| 勃利县| 宁晋县| 庆元县| 信丰县| 浏阳市| 邵阳市| 蒙城县| 玉环县| 同江市| 克什克腾旗| 师宗县| 阿拉善右旗| 饶阳县| 四平市| 东阳市| 简阳市| 瓦房店市| 莱阳市| 柳林县| 德令哈市| 玉林市| 吉林市| 庆城县| 博兴县| 江口县| 东台市| 澄迈县| 多伦县| 莱州市| 新津县| 乌苏市| 湘西| 桦甸市|