J'ai une table ("table1") avec 3 colonnes appelées col1, col2 et col3 (chacune est VARCHAR) avec 4 valeurs comme indiqué ci-dessous:
col1 col2 col3
datA1 datB1 datC1
datA2
J'ai besoin de pouvoir ajouter des données à tout moment dans n'importe quelle colonne qui n'affecte pas les autres. Le code très populaire sur Internet est le suivant (par exemple, nous devons ajouter des données uniquement aux colonnes col2 et col3):
INSERT INTO table1 (col2, col3)
VALUES ('datB2', 'datC2');
Mais il ajoute de nouvelles lignes, comme ci-dessous:
col1 col2 col3
datA1 datB1 datC1
datA2
NULL datB2 datC2
Ce dont j'ai vraiment besoin, c'est de remplir la ligne commençant par la valeur "datA2" dans la colonne "col1" avec de nouvelles valeurs et d'obtenir le tableau comme ci-dessous:
col1 col2 col3
datA1 datB1 datC1
datA2 datB2 datC2
Si quelqu'un pouvait m'aider, je serais très apprécié !!! Merci .. Arsenii.
Mise à jour: Le tableau comporte 3 colonnes et chaque réponse de colonne pour un type particulier de valeurs (par exemple: nom, couleur, taille). Ce dont j'ai besoin, c'est simplement la possibilité d'ajouter de nouvelles valeurs à tout moment dans une colonne particulière et de les avoir sans Null et de nouvelles lignes si elle a une cellule libre auparavant.
J'ai trouvé la solution (une chaîne d'opérations logiques):
1) CHECK
s'il existe une cellule (dans la colonne cible) avec les valeurs ""
ou NULL
.
2) IF
il en a une puis réécrit le PREMIER en gardant les valeurs des autres cellules de cette rangée à leur place (supposons que nous utilisons UPDATE
)))).
3) ELSE
ajoute simplement une nouvelle ligne avec tous les NULL
s dans l’autre cellule de la ligne.
Si nous voulons ajouter quelques valeurs simultanément dans différentes colonnes, nous pouvons préparer nos requêtes pour toutes celles-ci et les exécuter simultanément (désolé pour la tautologie).
Si nous devons ajouter quelques valeurs dans la même colonne dans une même requête, nous pouvons la préparer en utilisant des boucles (en répétant les paragraphes 1 et 2 (ou, éventuellement, 3).
UPDATE table1
SET col2 = dataB2, col3 = dataC2
WHERE col1 = dataA2;
Cela peut servir votre but :)
Vous devrez utiliser l'instruction UPDATE
si vous souhaitez ajouter des données à une ligne existante. Comme ceci par exemple:
UPDATE table1 SET
col2 = 'data5'
col3 = 'data6'
FROM table1
WHERE col1 = 'data4'
En outre, il semble que la base de votre problème réside dans une conception de base de données médiocre, mais cette requête a pour seul but de vous montrer comment ajouter des données à une ligne existante.
Supposons que vous ayez la table
CLIENT_MASTER
ClientNo Nom
C00001 Ivan
C00002 Himanshu
Maintenant, vous ajoutez une nouvelle colonne Ville
ALTER table CLIENT_MASTER
ADD( City varchar(10));
Maintenant, si vous voulez ajouter des valeurs dans des lignes déjà existantes, vous pouvez utiliser la commande UPDATE.
Par exemple
UPDATE CLIENT_MASTER
SET City='Delhi'
WHERE ClientNo='C00001';
Le tableau mis à jour est
ClientNo Nom Ville
C00001 Ivan Delhi
C00002 Himanshu NULL
Étant donné une structure de table, avec deux lignes de données:
key value
--------------------
team accounts
manager jeff
Chaque fois que vous souhaitez modifier une valeur, vous devez vérifier si elle est déjà présente (pour la mise à jour) ou non (pour l'insertion). Donc, pour changer la valeur de la propriété manager
:
if exists(select * from keyValues where key = 'manager')
update keyValues set value = 'mike' where key = 'manager'
else
insert into keyValues ('manager', 'mike')