J'ai une table dans CockroachDB, j'ai peuplé les données dans la table avant d'appliquer les contraintes pour définir la clé primaire, et parce qu'une partie de l'instruction INSERT a échoué pendant la phase de chargement des données, certains des lignes sont chargées dans la table plus d'une fois par erreur.Comment supprimer des lignes dupliquées dans CockroachDB
La contrainte que je veux appliquer est:
CREATE UNIQUE INDEX ON "MyDB"."MyTable" ("Row_ID");
Mais comme les données en double est déjà chargé dans la table, je reçois l'erreur suivante:
pq: multiple primary keys for table "MyTable" are not allowed
J'ai vérifier si en fait il y a quelques lignes dupliquées avec la requête suivante:
SELECT
Row_ID,
COUNT(Row_ID) as id
FROM
MyTable
GROUP BY
Row_ID
HAVING
COUNT(Row_ID) > 1;
Et la requête a montré qu'il y a quelques lignes en double.
Quelle est la meilleure façon de supprimer les lignes en double dans CockroachDB?
Merci, je l'ai essayé, chaque fois que je lance la requête: créer une table MyWorkData en tant que select distinct * de MyTable ;, le processus sera Killed. Je ne sais pas pourquoi, le serveur ne donne aucune autre raison, en utilisant la commande "free -m", je ne pense pas que ce soit à cause de la mémoire. – Cyrus
Vous pouvez également créer la table et la remplir avec un 'select into' en deux étapes. – Juan
@Cyrus, vous pouvez obtenir un rapport d'échec plus détaillé dans les fichiers journaux. S'il vous plaît faites un problème ou venez discuter avec nous sur Gitter! http: // gitter.im/cockroachdb/cockroach – benesch