2016-02-17 2 views
-1

Tableau w:SQL Insérer une requête pour plusieurs ID Max

|ID|Comment|SeqID| 
|1 |bajg | 1 | 
|1 |2423 | 2 | 
|2 |ref | 1 | 
|2 |comment| 2 | 
|2 |juk | 3 | 
|3 |efef | 1 | 
|4 | hy | 1 | 
|4 | 6u | 2 | 

Comment insérer une nouvelle norme commentaire pour chaque ID pour une nouvelle SEQID (augmentation de SEQID par 1)

Les résultats ci-dessous de la requête en le plus élevé SEQID:

Select * 
From w 
Where SEQID = 
(select max(seqid) 
from w) 

Tableau w:

|2 |juk | 3 | 

Résultat attendu Tableau w:

|ID|Comment|SeqID| 
|1 |sqc | 3 | 
|2 |sqc | 4 | 
|3 |sqc | 2 | 
|4 |sqc | 3 | 

Est-ce que je dois passer par et insérer toutes les valeurs (comme un commentaire SQC) Je veux dans la table à l'aide ci-dessous, ou est-il un moyen plus rapide?

INSERT INTO table_name 
VALUES (value1,value2,value3,...); 
+0

D'où vient le sqc? Je ne suis pas très clair sur ce que vous essayez d'accomplir réellement? Mettre à jour un enregistrement existant ou générer un nouvel enregistrement? –

+0

sqc est un nouveau commentaire que je veux ajouter. La table contient tous les commentaires et chaque nouveau commentaire ajouté est ajouté en séquence. Par exemple: si j'ajoute un nouveau commentaire "hihi" pour ID 1 (en regardant les données dans le tableau w), il ajoutera une nouvelle ligne dans la base de données | 1 | hihi | 3 | . Générant ainsi un nouvel enregistrement –

Répondre

1

Essayez ceci:

INSERT INTO mytable (ID, Comment, SeqID) 
SELECT ID, 'sqc', MAX(SeqID) + 1 
FROM mytable 
GROUP BY ID 

Demo here

0

Vous êtes probablement mieux juste calculer la valeur lors de l'interrogation. Définir une colonne identity sur la table, et dire CommentId exécuter une requête comme:

select id, comment, 
     row_number() over (partition by comment order by CommentId) as SeqId 
from t; 

Ce qui est bien au sujet de cette approche est que les ids sont toujours séquentielle, vous n'avez pas aucune possibilité de doublons, la table ne pas besoin d'être verrouillé lors de l'insertion, et les identifiants séquentiels fonctionnent même pour les mises à jour et les suppressions.