sql insérer dans la table de select sans doublons (besoin de plus d'un DISTINCT)
Je suis la sélection de plusieurs lignes et de les insérer dans une autre table. Je veux m'assurer qu'il n'existe déjà dans la table, je suis insertion de plusieurs lignes.
DISTINCTES fonctionne quand il s'agit de doublons dans la sélection, mais pas quand on la compare aux données déjà dans la table de votre insertion.
Si je Choisis une ligne à la fois, je pourrais faire un SI EXISTENT mais depuis sa plusieurs lignes (parfois 10+) il ne semble pas comme je peux le faire.
source d'informationauteur tdjfdjdj
Vous devez vous connecter pour publier un commentaire.
Si l'distinctes devraient être seulement certaines colonnes (par exemple, col1, col2), mais vous devez insérer une colonne, vous aurez probablement besoin de quelques dérivés de la table (ANSI SQL):
Si vous avez déjà un index unique sur tout les champs doivent être uniques dans la table de destination, vous pouvez simplement utiliser INSÉREZ IGNORER (voici le la documentation officielle - la peu est vers la fin), et MySQL jeter les doublons pour vous.
Espérons que cette aide!
Si vous êtes à la recherche pour récupérer toutes les lignes uniques de la table source qui n'existent pas déjà dans la table cible?
C'est en supposant que vous avez une clé primaire qui vous pouvez de la base de l'unicité sur... dans le cas contraire, vous devrez vérifier chaque colonne pour l'unicité.
pseudo-code pour ce qui pourrait fonctionner
Il y a quelques MSDN articles sur le sujet, mais de loin, c'est le meilleur:
http://msdn.microsoft.com/en-us/library/ms162773.aspx
Ils ont fait, c'est très facile à mettre en œuvre et mon problème est maintenant résolu. Aussi l'interface est moche, mais en fait vous pouvez définir des intervalles d'une minute sans l'aide de la ligne de commande dans windows 2003.