Maison > base de données > tutoriel mysql > le corps du texte

Une introduction détaillée à la façon dont MySQL utilise UNIQUE pour réaliser une insertion de données sans duplication

黄舟
Libérer: 2017-05-28 09:58:10
original
2089 Les gens l'ont consulté

Lorsqu'une colonne unique insère un enregistrement contenant des valeurs en double sur une clé UNIQUE, nous pouvons contrôler la façon dont MySQL gère cette situation : utilisez le mot-clé IGNORE ou ON DUPLICATE KEY UP La clause DATE ignore INSERT, interrompt les opérations ou met à jour anciens enregistrements avec de nouvelles valeurs.

SQL UNIQUE Contrainte

La contrainte UNIQUE identifie de manière unique chaque enregistrement dans une table de base de données.
Les contraintes UNIQUE et PRIMARY KEY fournissent des garanties d'unicité pour une colonne ou un ensemble de colonnes.
PRIMARY KEY a automatiquement défini des contraintes UNIQUE.

Veuillez noter que chaque table peut avoir plusieurs contraintes UNIQUE, mais il ne peut y avoir qu'une seule contrainte PRIMARY KEY par table.

Le SQL suivant crée une contrainte UNIQUE sur la colonne "Id_P" lors de la création de la table "Persons" :

CREATE TABLE Persons
(
  Id_P int NOT NULL,
  LastName varchar(255) NOT NULL,
  FirstName varchar(255),
  Address varchar(255),
  City varchar(255),
  UNIQUE (Id_P)
)
Copier après la connexion

Si vous devez nommer la contrainte UNIQUE, et définissez UNIQUE pour plusieurs colonnes Contrainte, veuillez utiliser la syntaxe SQL suivante :

CREATE TABLE Persons
(
  Id_P int NOT NULL,
  LastName varchar(255) NOT NULL,
  FirstName varchar(255),
  Address varchar(255),
  City varchar(255),
  CONSTRAINT uc_PersonID UNIQUE (Id_P,LastName)
)
Copier après la connexion

Lorsque la table a été créée, si vous devez créer une contrainte UNIQUE sur la colonne "Id_P", veuillez utiliser le SQL suivant :

ALTER TABLE Persons ADD UNIQUE (Id_P)
Copier après la connexion

Pour nommer une contrainte UNIQUE et définir des contraintes UNIQUE pour plusieurs colonnes, veuillez utiliser la syntaxe SQL suivante :

ALTER TABLE Persons ADD CONSTRAINT uc_PersonID UNIQUE (Id_P,LastName)
Copier après la connexion

Pour révoquer une contrainte UNIQUE, veuillez utiliser le SQL suivant :

ALTER TABLE Persons DROP INDEX uc_PersonID
Copier après la connexion

De cette façon, MySQL demandera une entrée en double valeur1-valeur2 pour clé uni_que chaque fois qu'un enregistrement en double est inséré. Bien sûr, vous pouvez. ajoutez ignorer lors de l'insertion pour l'ignorer
Maintenant, après nous être assuré qu'il n'y a pas d'enregistrements en double, nous devons lancer l'opération d'insertion si l'enregistrement n'existe pas, et l'opération de mise à jour s'il existe

INSERT INTO tablename (field1, field2, field3, ...) VALUES ('value1', 'value2','value3', ...) ON DUPLICATE KEY UPDATE field1='value1', field2='value2', field3='value3', ...
Copier après la connexion

Cette instruction signifie insérer la valeur. S'il n'existe pas d'enregistrement de ce type, exécutez

INSERT INTO tablename (field1, field2, field3, ...) VALUES ('value1', 'value2','value3', ...)
Copier après la connexion

Dans cette section, si l'enregistrement existe, exécutez

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal