Maison base de données tutoriel mysql MySQL中REPLACE INTO和INSERT INTO的区别分析

MySQL中REPLACE INTO和INSERT INTO的区别分析

Jun 07, 2016 pm 06:03 PM
insert replace

REPLACE的运行与INSERT很相似。只有一点例外,假如表中的一个旧记录与一个用于PRIMARY KEY或一个UNIQUE索引的新记录具有相同的值,则在新记录被插入之前,旧记录被删除。

注意,除非表有一个PRIMARY KEY或UNIQUE索引,否则,使用一个REPLACE语句没有意义。该语句会与INSERT相同,因为没有索引被用于确定是否新行复制了其它的行。

[separator]
所有列的值均取自在REPLACE语句中被指定的值。所有缺失的列被设置为各自的默认值,这和INSERT一样。您不能从当前行中引用值,也不能在新行中使用值。如果您使用一个例如“SET col_name = col_name + 1”的赋值,则对位于右侧的列名称的引用会被作为DEFAULT(col_name)处理。因此,该赋值相当于SET col_name = DEFAULT(col_name) + 1。

为了能够使用REPLACE,您必须同时拥有表的INSERT和DELETE权限。
REPLACE语句会返回一个数,来指示受影响的行的数目。该数是被删除和被插入的行数的和。如果对于一个单行REPLACE该数为1,则一行被插入,同时没有行被删除。如果该数大于1,则在新行被插入前,有一个或多个旧行被删除。如果表包含多个唯一索引,并且新行复制了在不同的唯一索引中的不同旧行的值,则有可能是一个单一行替换了多个旧行。

受影响的行数可以容易地确定是否REPLACE只添加了一行,或者是否REPLACE也替换了其它行:检查该数是否为1(添加)或更大(替换)。

如果您正在使用C API,则可以使用mysql_affected_rows()函数获得受影响的行数。
目前,您不能在一个子查询中,向一个表中更换,同时从同一个表中选择。

下文时算法的详细说明(此算法也用于LOAD DATA…REPLACE):
1. 尝试把新行插入到表中
2. 当因为对于主键或唯一关键字出现重复关键字错误而造成插入失败时:
a. 从表中删除含有重复关键字值的冲突行
b. 再次尝试把新行插入到表中

使用格式如下:
REPLACE [LOW_PRIORITY | DELAYED]
[INTO] tbl_name [(col_name,...)]
VALUES ({expr | DEFAULT},…),(…),…
或:
REPLACE [LOW_PRIORITY | DELAYED]
[INTO] tbl_name
SET col_name={expr | DEFAULT}, …
或:
REPLACE [LOW_PRIORITY | DELAYED]
[INTO] tbl_name [(col_name,...)]
SELECT …
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)

Quelle est la différence entre insérer ignorer, insérer et remplacer dans MySQL Quelle est la différence entre insérer ignorer, insérer et remplacer dans MySQL May 29, 2023 pm 04:40 PM

La différence entre les instructions insertignore, insert et replace existe déjà ou non. Exemple d'erreur d'insertion Insertintonames(name,age)values("Xiaoming",23);insertignore ignore insertignoreintonames(name,age)values("Xiaoming",24) ;replace Remplacer et insérer replaceintonames(name,age)values("Xiao Ming", 25); exigences de la table : clé primaire, ou résultat d'index unique : l'identifiant de la table sera automatiquement incrémenté. Le code de test crée la table.

Utilisez la fonction StringBuilder.insert() de Java pour insérer une chaîne à la position spécifiée Utilisez la fonction StringBuilder.insert() de Java pour insérer une chaîne à la position spécifiée Jul 24, 2023 pm 09:37 PM

Utilisez la fonction StringBuilder.insert() de Java pour insérer une chaîne à une position spécifiée. StringBuilder est une classe en Java utilisée pour gérer les chaînes variables. Elle fournit une variété de méthodes pour faire fonctionner les chaînes. méthodes courantes d’insertion positionnelle de chaînes. Dans cet article, nous présenterons comment utiliser la fonction insert() pour insérer une chaîne à une position spécifiée et donnerons des exemples de code correspondants. insérer()

Comment utiliser la fonction REPLACE pour remplacer une partie spécifiée d'une chaîne dans MySQL Comment utiliser la fonction REPLACE pour remplacer une partie spécifiée d'une chaîne dans MySQL Jul 25, 2023 pm 01:18 PM

MySQL est un système de gestion de bases de données relationnelles couramment utilisé qui fournit une variété de fonctions pour traiter et exploiter les données. Parmi eux, la fonction REPLACE est utilisée pour remplacer la partie spécifiée de la chaîne. Dans cet article, nous présenterons comment utiliser la fonction REPLACE pour le remplacement de chaînes dans MySQL et démontrerons son utilisation à travers des exemples de code. Tout d’abord, jetons un œil à la syntaxe de la fonction REPLACE : REPLACE(str, search_str, replace_str).

Quelles sont les techniques de recherche et de remplacement de chaînes en Python ? Quelles sont les techniques de recherche et de remplacement de chaînes en Python ? Oct 20, 2023 am 11:42 AM

Quelles sont les techniques de recherche et de remplacement de chaînes en Python ? (Exemple de code spécifique) En Python, les chaînes sont un type de données courant, et nous rencontrons souvent des opérations de recherche et de remplacement de chaînes dans la programmation quotidienne. Cet article présentera quelques techniques courantes de recherche et de remplacement de chaînes, accompagnées d'exemples de code spécifiques. Pour rechercher une sous-chaîne spécifique dans une chaîne, vous pouvez utiliser la méthode find() ou la méthode index() de la chaîne. La méthode find() renvoie l'index de la première occurrence de la sous-chaîne dans la chaîne.

Comment ajouter, modifier et supprimer des lignes de tableau dans jQuery ? Comment ajouter, modifier et supprimer des lignes de tableau dans jQuery ? Sep 05, 2023 pm 09:49 PM

À l'ère actuelle du développement Web, une gestion efficace et efficiente des tables est devenue très importante, en particulier lorsqu'il s'agit d'applications Web gourmandes en données. La possibilité d'ajouter, de modifier et de supprimer dynamiquement des lignes d'un tableau peut améliorer considérablement l'expérience utilisateur et rendre les applications plus interactives. Un moyen efficace d’y parvenir consiste à exploiter la puissance de jQuery. jQuery fournit de nombreuses fonctionnalités pour aider les développeurs à effectuer des opérations. Lignes de tableau Une ligne de tableau est une collection de données interdépendantes, représentées par des éléments en HTML. Il permet de regrouper des cellules (représentées par des éléments) dans un tableau. Chaque élément est utilisé pour définir une ligne dans le tableau, et pour les tableaux multi-attributs, il contient généralement un ou plusieurs éléments. Syntaxe$(sélecteur).append(co

insérer une instruction insérer une instruction Sep 15, 2023 pm 01:30 PM

La syntaxe de base de l'instruction d'insertion est "INSERT INTO nom de la table (colonne 1, colonne 2, colonne 3, ...), VALUES (valeur 1, valeur 2, valeur 3, ...);", "nom de la table" doit être inséré Le nom du tableau de données. "Colonne 1", "Colonne 2", "Colonne 3", etc. sont les noms des colonnes du tableau dans lesquelles les données doivent être insérées "Valeur 1", ". Valeur 2", "Valeur 3", etc. sont les noms des colonnes à insérer. valeur des données.

Utilisez la méthode insert() de la classe StringBuilder en Java pour insérer une chaîne dans un emplacement spécifié Utilisez la méthode insert() de la classe StringBuilder en Java pour insérer une chaîne dans un emplacement spécifié Jul 25, 2023 pm 05:18 PM

En Java, utilisez la méthode insert() de la classe StringBuilder pour insérer une chaîne dans un emplacement spécifié. En Java, si vous devez insérer une chaîne existante, vous pouvez utiliser la méthode insert() de la classe StringBuilder. StringBuilder est une séquence de caractères variable qui fournit une série de méthodes pour modifier et exploiter des chaînes. En utilisant la méthode insert(), vous pouvez insérer une chaîne dans la chaîne d'origine à une position spécifiée, ainsi

Utilisez la méthode replace() de la classe StringBuilder en Java pour remplacer une partie du contenu d'une chaîne Utilisez la méthode replace() de la classe StringBuilder en Java pour remplacer une partie du contenu d'une chaîne Jul 24, 2023 pm 10:28 PM

Utilisez la méthode replace() de la classe StringBuilder en Java pour remplacer une partie du contenu d'une chaîne. En programmation Java, les chaînes sont un type de données très important et les chaînes doivent souvent être traitées et manipulées. Et parfois, nous devons remplacer une partie de la chaîne pour répondre à nos besoins. En Java, vous pouvez utiliser la méthode replace() de la classe StringBuilder pour implémenter des opérations de remplacement de chaîne. StringBuilder est un

See all articles