Home Database Mysql Tutorial MySQL生产库Insert了2次同样的记录但是主键ID是不一样的问题的分_MySQL

MySQL生产库Insert了2次同样的记录但是主键ID是不一样的问题的分_MySQL

Jun 01, 2016 pm 01:30 PM
Record

bitsCN.com

MySQL生产库Insert了2次同样的记录但是主键ID是不一样的问题的分析过程

 

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','')
Copy after login

如果相同的记录不存在就执行上面这条insert命令,防止执行是insert两次。

这个语句该怎么写?

能明白不?

现在有个问题就是insert了2次同样的记录但是主键ID是不一样的。

me :

如果是mysql数据库的话:

1 如果你表中有唯一健的话,可以通过这个唯一健来进行赛选的。

2 如果没有唯一健的话,你需要有判断数据是否重复的条件,根据这个条件先select出来,看是否存在,如果不存在就insert,如果存在要么覆盖要么就忽略掉不执行,这个过程需要多条sql语句,最好开启事务来进行控制。

Mysql中有一个replace以及Insert into ..... on duplicate key update 来判断对重复数据进行insert或者update的,但是这是依据主健或者唯一健来判断的。你可以参考下下面这篇文章。

laopan:

1.唯一键怎么筛选?现在的问题是唯一的不同是key不一样,别的列都是一样的。

me :

把表结构发给我,我看看 , 通过执行 命令 show create table HudsonResult; 可以得出表结构。

如果没有唯一健的话,就不能从sql层面去判断数据的唯一性,否则资源消耗太大了。需要从应用角度数据来源角度去验证过滤。

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)
Copy after login

 

现在的问题背景是这样的,网页上insert后,电脑卡了一下,这个时候还没有返回,又点了一下,变成又insert了一次,导致2条记录

内容是一样的,但是主键是不一样的,java你也做过,有没有啥想法,避免这个?

 

 

ME :

把提交按钮做下处理,很简单的,提交一次后,按纽设置为灰色的,操作者点击不了,只有等待提交处理结果出来继续进行下一步操作。

 

 

laopan:

搞定了,呵呵,简单易用哈,考虑多了,谢啦。

 

总结:可见有很多时候错误数据都是由于应用的bug导致的,清理数据的同时要从根源处理问题,数据层面的sql能不动尽量不要动。
 

bitsCN.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Where can I view the records of things I have purchased on Pinduoduo? How to view the records of purchased products? Where can I view the records of things I have purchased on Pinduoduo? How to view the records of purchased products? Mar 12, 2024 pm 07:20 PM

Pinduoduo software provides a lot of good products, you can buy them anytime and anywhere, and the quality of each product is strictly controlled, every product is genuine, and there are many preferential shopping discounts, allowing everyone to shop online Simply can not stop. Enter your mobile phone number to log in online, add multiple delivery addresses and contact information online, and check the latest logistics trends at any time. Product sections of different categories are open, search and swipe up and down to purchase and place orders, and experience convenience without leaving home. With the online shopping service, you can also view all purchase records, including the goods you have purchased, and receive dozens of shopping red envelopes and coupons for free. Now the editor has provided Pinduoduo users with a detailed online way to view purchased product records. method. 1. Open your phone and click on the Pinduoduo icon.

How to view and manage Linux command history How to view and manage Linux command history Aug 01, 2023 pm 09:17 PM

How to View Command History in Linux In Linux, we use the history command to view the list of all previously executed commands. It has a very simple syntax: history Some options for pairing with the history command include: Option description -c clears the command history for the current session -w writes the command history to a file -r reloads the command history from the history file -n Limit the number of output of recent commands Simply run the history command to see a list of all previously executed commands in a Linux terminal: In addition to viewing command history, you can also manage command history and perform modifications to previously executed commands , reverse search command history or even delete history completely

How to check call history in iPhone and export it? How to check call history in iPhone and export it? Jul 05, 2023 pm 12:54 PM

Call recording in iPhone is often underestimated and is one of the most critical features of iPhone. With its simplicity, this feature is of vital importance and can provide important insights about the calls made or received on the device. Whether for work purposes or legal proceedings, the ability to access call records can prove invaluable. In simple terms, call history refers to the entries created on your iPhone whenever you make or receive a call. These logs contain key information, including the contact's name (or number if not saved as a contact), timestamp, duration, and call status (dialed, missed, or not answered). They are a concise record of your communication history. Call history includes call history strips stored on your iPhone

How to view your medication log history in the Health app on iPhone How to view your medication log history in the Health app on iPhone Nov 29, 2023 pm 08:46 PM

iPhone lets you add medications to the Health app to track and manage the medications, vitamins and supplements you take every day. You can then log medications you've taken or skipped when you receive a notification on your device. After you log your medications, you can see how often you took or skipped them to help you track your health. In this post, we will guide you to view the log history of selected medications in the Health app on iPhone. A short guide on how to view your medication log history in the Health App: Go to the Health App>Browse>Medications>Medications>Select a Medication>Options&a

C# Development Advice: Logging and Monitoring Systems C# Development Advice: Logging and Monitoring Systems Nov 22, 2023 pm 08:30 PM

C# Development Suggestions: Logging and Monitoring System Summary: In the software development process, logging and monitoring systems are crucial tools. This article will introduce the role and implementation suggestions of logging and monitoring systems in C# development. Introduction: Logging and monitoring are essential tools in large-scale software development projects. They can help us understand the running status of the program in real time and quickly discover and solve problems. This article will discuss how to use logging and monitoring systems in C# development to improve software quality and development efficiency. The role of logging system

How to log and monitor Java development projects How to log and monitor Java development projects Nov 03, 2023 am 10:09 AM

How to log and monitor Java development projects 1. Background introduction With the rapid development of the Internet, more and more companies have begun to develop Java and build various types of applications. In the development process, logging and monitoring are an important link that cannot be ignored. Through logging and monitoring, developers can discover and solve problems in time to ensure the stability and security of applications. 2. The importance of logging 1. Problem tracking: When an application error occurs, logging can help us quickly locate the problem.

How to clear history on iPhone How to clear history on iPhone Jun 29, 2023 pm 01:13 PM

How to clear iPhone history in Safari? To clear your browsing and search history on Apple's Safari, you need to open the Settings app on your device. After selecting Settings, you need to scroll down and select Safari, then another menu will appear and you need to select Clear History and Website Data. You now need to select Clear History and Data from the menu, which will delete all search history, browsing history, cookies, and data from Apple’s Safari browser. That's it, all your previous browsing history and search history are now deleted from Safari. If you don’t want to delete all search history in Safari

How to record running kilometers in keep? Where is the running track recorded? How to record running kilometers in keep? Where is the running track recorded? Mar 12, 2024 am 11:10 AM

We all know that the above are very good sports-type software for us, which can help users complete various sports in real time, and we can also see some of the above trajectories during some running processes. You can learn more about it. Many users don’t know about some of the above functional information, so today I will give you a good explanation of some of the content and experience, so that everyone can better carry out various functions. Some choices. If you also want to know some tracks and records about your own running, be sure not to miss it. More high-quality content is waiting for you to learn about it. A lot of interesting strategy information is waiting for you. If If you also want to know, let’s take a look with the editor now.​

See all articles