Maison > base de données > tutoriel mysql > Comment puis-je répliquer la fonctionnalité RowID d'Oracle dans MySQL ?

Comment puis-je répliquer la fonctionnalité RowID d'Oracle dans MySQL ?

Linda Hamilton
Libérer: 2024-11-29 15:33:10
original
110 Les gens l'ont consulté

How Can I Replicate Oracle's RowID Functionality in MySQL?

MySQL équivalent au RowID d'Oracle

Dans MySQL, la fonctionnalité rowid fournie par Oracle n'est pas directement disponible. Cependant, il existe des approches alternatives pour obtenir des fonctionnalités similaires pour les tâches de manipulation de données.

Approche alternative pour la suppression de la duplication de données

Pour supprimer les valeurs en double et imposer une clé primaire comme dans le cas Rowid d'Oracle, vous pouvez suivez ces étapes :

  1. Utiliser une session Variable :

    SELECT @rowid:=@rowid+1 as rowid
    FROM table1, (SELECT @rowid:=0) as init
    ORDER BY sorter_field
    Copier après la connexion

    Cela génère un identifiant unique de type rowid pour chaque ligne.

  2. Créer une table temporaire :

    CREATE TEMPORARY TABLE duplicates ...
    Copier après la connexion
  3. Insérer une sous-requête de plage dans un fichier temporaire Tableau :

    INSERT INTO duplicates (rowid, field1, field2, some_row_uid)
    SELECT
      @rowid:=IF(@f1=field1 AND @f2=field2, @rowid+1, 0) as rowid,
      @f1:=field1 as field1,
      @f2:=field2 as field2,
      some_row_uid
    FROM testruns t, (SELECT @rowid:=NULL, @f1:=NULL, @f2:=NULL) as init
    ORDER BY field1, field2 DESC;
    Copier après la connexion
  4. Supprimer les doublons :

    DELETE FROM my_table USING my_table JOIN duplicates
      ON my_table.some_row_uid = duplicates.some_row_uid AND duplicates.rowid > 0
    Copier après la connexion

Cette approche fournit une solution de contournement pour l'absence d'équivalent rowid direct dans MySQL, vous permettant d'effectuer des tâches de manipulation de données sur des tables sans clés primaires.

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!

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal