Maison base de données tutoriel mysql MySQL生产库Insert了2次同样的记录但是主键ID是不一样的问题的分_MySQL

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

Jun 01, 2016 pm 01:30 PM
记录

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','')
Copier après la connexion

如果相同的记录不存在就执行上面这条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)
Copier après la connexion

 

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

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

 

 

ME :

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

 

 

laopan:

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

 

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

bitsCN.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Où puis-je consulter les enregistrements des articles que j'ai achetés sur Pinduoduo ? Comment consulter les enregistrements des produits achetés ? Où puis-je consulter les enregistrements des articles que j'ai achetés sur Pinduoduo ? Comment consulter les enregistrements des produits achetés ? Mar 12, 2024 pm 07:20 PM

Le logiciel Pinduoduo fournit de nombreux bons produits, vous pouvez les acheter à tout moment et n'importe où, et la qualité de chaque produit est strictement contrôlée, chaque produit est authentique et il existe de nombreuses remises d'achat préférentielles, permettant à chacun d'acheter en ligne. Entrez votre numéro de téléphone mobile pour vous connecter en ligne, ajoutez plusieurs adresses de livraison et informations de contact en ligne et vérifiez les dernières tendances logistiques à tout moment. Les sections de produits de différentes catégories sont ouvertes, recherchez et balayez de haut en bas pour acheter et passer des commandes, et. Faites l'expérience de la commodité sans quitter la maison. Avec le service d'achat en ligne, vous pouvez également consulter tous les enregistrements d'achat, y compris les produits que vous avez achetés, et recevoir gratuitement des dizaines d'enveloppes rouges et de coupons d'achat. L'éditeur a désormais fourni aux utilisateurs de Pinduoduo un aperçu détaillé en ligne. moyen d'afficher les enregistrements de produits achetés. 1. Ouvrez votre téléphone et cliquez sur l'icône Pinduoduo.

Comment consulter l'historique des appels sur iPhone et l'exporter ? Comment consulter l'historique des appels sur iPhone et l'exporter ? Jul 05, 2023 pm 12:54 PM

L'enregistrement des appels sur iPhone est souvent sous-estimé et constitue l'une des fonctionnalités les plus critiques de l'iPhone. Grâce à sa simplicité, cette fonctionnalité est d'une importance vitale et peut fournir des informations importantes sur les appels passés ou reçus sur l'appareil. Que ce soit à des fins professionnelles ou dans le cadre d'une procédure judiciaire, la possibilité d'accéder aux enregistrements d'appels peut s'avérer inestimable. En termes simples, l'historique des appels fait référence aux entrées créées sur votre iPhone chaque fois que vous passez ou recevez un appel. Ces journaux contiennent des informations clés, notamment le nom du contact (ou son numéro s'il n'est pas enregistré en tant que contact), l'horodatage, la durée et l'état de l'appel (composé, manqué ou sans réponse). Ils constituent un enregistrement concis de votre historique de communication. L'historique des appels comprend des bandes d'historique des appels stockées sur votre iPhone

Comment afficher et gérer l'historique des commandes Linux Comment afficher et gérer l'historique des commandes Linux Aug 01, 2023 pm 09:17 PM

Comment afficher l'historique des commandes sous Linux Sous Linux, nous utilisons la commande history pour afficher la liste de toutes les commandes précédemment exécutées. Sa syntaxe est très simple : history Certaines options de couplage avec la commande history incluent : Description de l'option -c efface l'historique des commandes pour la session en cours -w écrit l'historique des commandes dans un fichier -r recharge l'historique des commandes à partir du fichier historique - n Limiter le nombre de sorties de commandes récentes Exécutez simplement la commande history pour voir une liste de toutes les commandes précédemment exécutées dans un terminal Linux : En plus de visualiser l'historique des commandes, vous pouvez également gérer l'historique des commandes et effectuer des modifications sur les commandes précédemment exécutées, inverser rechercher l'historique des commandes ou même supprimer complètement l'historique

Comment afficher l'historique de votre journal de médicaments dans l'application Santé sur iPhone Comment afficher l'historique de votre journal de médicaments dans l'application Santé sur iPhone Nov 29, 2023 pm 08:46 PM

iPhone vous permet d’ajouter des médicaments dans l’application Santé pour suivre et gérer les médicaments, vitamines et suppléments que vous prenez quotidiennement. Vous pouvez ensuite enregistrer les médicaments que vous avez pris ou ignorés lorsque vous recevez une notification sur votre appareil. Après avoir enregistré vos médicaments, vous pouvez voir à quelle fréquence vous les avez pris ou sautés pour vous aider à suivre votre état de santé. Dans cet article, nous vous guiderons pour afficher l'historique des journaux de médicaments sélectionnés dans l'application Santé sur iPhone. Un petit guide sur la façon d'afficher l'historique de votre journal de médicaments dans l'application Santé : Accédez à l'application Santé > Parcourir > Médicaments > Médicaments > Sélectionner un médicament > Options

Conseils de développement C# : systèmes de journalisation et de surveillance Conseils de développement C# : systèmes de journalisation et de surveillance Nov 22, 2023 pm 08:30 PM

Suggestions de développement C# : Résumé du système de journalisation et de surveillance : Dans le processus de développement logiciel, les systèmes de journalisation et de surveillance sont des outils cruciaux. Cet article présentera le rôle et les suggestions de mise en œuvre des systèmes de journalisation et de surveillance dans le développement C#. Introduction : La journalisation et la surveillance sont des outils essentiels dans les projets de développement logiciel à grande échelle. Ils peuvent nous aider à comprendre l’état d’exécution du programme en temps réel et à découvrir et résoudre rapidement les problèmes. Cet article explique comment utiliser les systèmes de journalisation et de surveillance dans le développement C# pour améliorer la qualité des logiciels et l'efficacité du développement. Le rôle du système de journalisation

Comment enregistrer et surveiller les projets de développement Java Comment enregistrer et surveiller les projets de développement Java Nov 03, 2023 am 10:09 AM

Comment enregistrer et surveiller les projets de développement Java 1. Introduction générale Avec le développement rapide d'Internet, de plus en plus d'entreprises ont commencé à développer Java et à créer différents types d'applications. Dans le processus de développement, la journalisation et la surveillance constituent un lien important qui ne peut être ignoré. Grâce à la journalisation et à la surveillance, les développeurs peuvent découvrir et résoudre les problèmes à temps pour garantir la stabilité et la sécurité des applications. 2. L'importance de la journalisation 1. Suivi des problèmes : Lorsqu'une erreur d'application se produit, la journalisation peut nous aider à localiser rapidement le problème.

Comment effacer l'historique sur iPhone Comment effacer l'historique sur iPhone Jun 29, 2023 pm 01:13 PM

Comment effacer l’historique de l’iPhone dans Safari ? Pour effacer votre historique de navigation et de recherche sur Safari d'Apple, vous devez ouvrir l'application Paramètres sur votre appareil. Après avoir sélectionné Paramètres, vous devez faire défiler vers le bas et sélectionner Safari, puis un autre menu apparaîtra et vous devez sélectionner Effacer l'historique et les données du site Web. Vous devez maintenant sélectionner Effacer l'historique et les données dans le menu, ce qui supprimera tout l'historique de recherche, l'historique de navigation, les cookies et les données du navigateur Safari d'Apple. Ça y est, tout votre historique de navigation et votre historique de recherche précédents sont désormais supprimés de Safari. Si vous ne souhaitez pas supprimer tout l’historique de recherche dans Safari

Comment enregistrer les kilomètres de course en mémoire ? Où est enregistré le parcours de course ? Comment enregistrer les kilomètres de course en mémoire ? Où est enregistré le parcours de course ? Mar 12, 2024 am 11:10 AM

Nous savons tous que les logiciels ci-dessus sont pour nous de très bons logiciels de sport, qui peuvent aider les utilisateurs à réaliser divers sports en temps réel, et nous pouvons également voir certaines des trajectoires ci-dessus au cours de certains processus de course. Vous pouvez en apprendre davantage à ce sujet. les utilisateurs ne connaissent pas certaines des informations fonctionnelles ci-dessus, je vais donc aujourd'hui vous donner une bonne explication de certains contenus et expériences, afin que chacun puisse mieux exécuter diverses fonctions si vous souhaitez également en connaître. des pistes et des enregistrements sur votre propre course, assurez-vous de ne pas le manquer. Un contenu plus de haute qualité vous attend pour en savoir plus. De nombreuses informations stratégiques intéressantes vous attendent. un coup d'oeil avec l'éditeur maintenant.​

See all articles