2011-01-14 46 views
25

Tengo una tabla con una columna, vamos a llamarlo table_column que actualmente es null para todas las filas de la tabla. Me gustaría insertar el valor "test" en esa columna para todas las filas. ¿Alguien puede darme el SQL para esto?Insertar el mismo valor fijo en varias filas

He intentado INSERT INTO table (table_column) VALUES ("test"); pero eso solo rellena la última fila. ¿Cómo hago todas las filas a la vez?

Respuesta

57

Está buscando UPDATE no insertar.

UPDATE mytable 
SET table_column = 'test'; 

ACTUALIZACIÓN va a cambiar los valores de las filas existentes (y puede incluir una DONDE para que sea sólo afectan a filas específicas), mientras que INSERT es la adición de una nueva fila (lo que hace que parezca que sólo cambia la última fila, pero en efecto está agregando una nueva fila con ese valor).

+0

encontrado la pregunta porque en realidad * * No quiero insertar múltiples filas con los mismos valores de las columnas (excepto la clave principal autoincremented, que no lo haría proporcionar en una inserción de todos modos). – Michael

+0

Use 'SET SQL_SAFE_UPDATES = 0;' si el 'Workbench' emite errores – Arefe

17

Esto se debe a que en la terminología de bases de datos relacionales, lo que quiere hacer es no llama inserción, pero ACTUALIZACIÓN - está actualizando el campo de una fila existente de un valor (NULL en su caso) a "prueba"

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

No necesita la segunda línea si desea actualizar el 100% de las filas.

+1

Le di +1 solo porque es el único que ha publicado una respuesta y un motivo. Nadie en SO parece publicar razonamientos o referencias, quieren ser los primeros en el sorteo. –

+0

Irónicamente, acabo de darte +1 por la respuesta completa y especialmente el enlace de referencia :) – DVK

+0

@Brad Para ser justos, también publicaste la respuesta sin procesar, inicialmente; luego editaste tu publicación para agregar algunas explicaciones. Cuando envié mi respuesta, la tuya tenía 30 "de ventaja, y ya tenía 2 votaciones ascendentes ... Así que tienes razón, el * primero en el sorteo * obtienes el voto favorable para ese tipo de pregunta. –

1
UPDATE `table` SET table_column='test'; 
1

El SQL que necesita es:

Update table set table_column = "test"; 

El SQL informados crea una nueva fila en lugar de actualizar las filas existentes.

2

Lo que realmente está haciendo es agregar filas. Para actualizar el contenido de las filas existentes utilizar la instrucción UPDATE:

UPDATE table SET table_column = 'test'; 
Cuestiones relacionadas