web-dev-qa-db-fra.com

Insérez la même valeur fixe dans plusieurs lignes

J'ai une table avec une colonne, appelons-la table_column Qui est actuellement null pour toutes les lignes de la table. Je voudrais insérer la valeur "test" Dans cette colonne pour toutes les lignes. Quelqu'un peut-il me donner le SQL pour cela?

J'ai essayé INSERT INTO table (table_column) VALUES ("test"); mais cela ne remplit que la dernière ligne. Comment puis-je faire toutes les lignes à la fois?

32
TheDelChop

Vous recherchez MISE À JOUR ne pas insérer.

UPDATE mytable
SET    table_column = 'test';

UPDATE modifiera les valeurs des lignes existantes (et peut inclure un WHERE pour qu'il n'affecte que des lignes spécifiques), tandis que INSERT ajoute une nouvelle ligne (ce qui donne l'impression qu'elle n'a changé que la dernière ligne, mais en fait, ajoute une nouvelle ligne avec cette valeur).

74
Brad Christie

En effet, dans la terminologie de la base de données relationnelle, ce que vous voulez faire n'est pas appelé "insertion", mais "MISE À JOUR" - vous mettez à jour le champ d'une ligne existante à partir d'une valeur (NULL dans votre cas) pour "tester"

UPDATE your_table SET table_column = "test" 
WHERE table_column = NULL 

Vous n'avez pas besoin de la deuxième ligne si vous souhaitez mettre à jour 100% des lignes.

19
DVK

Ce que vous faites, c'est ajouter des lignes. Pour mettre à jour le contenu des lignes existantes, utilisez l'instruction UPDATE:

UPDATE table SET table_column = 'test';
2
Nicolas Buduroi
UPDATE `table` SET table_column='test';
1
Damodharan R

Le SQL dont vous avez besoin est:

Update table set table_column = "test";

Le code SQL que vous avez publié crée une nouvelle ligne plutôt que de mettre à jour les lignes existantes.

1
James Lelyveld