将相同的固定值插入多行

时间:2011-01-14 16:16:04

标签: mysql sql sql-update sql-insert

我有一个包含列的表,我们可以为表的所有行调用table_column当前为null的表。我想将值"test"插入到所有行的列中。有人可以给我这个SQL吗?

我尝试了 INSERT INTO table (table_column) VALUES ("test");,但只填充了最后一行。如何一次完成所有行?

7 个答案:

答案 0 :(得分:69)

您正在寻找UPDATE无法插入。

UPDATE mytable
SET    table_column = 'test';

UPDATE将更改现有行的值(并且可以包含WHERE以使其仅影响特定行),而INSERT则添加新行(这使得它看起来只更改了最后一行,但实际上是添加具有该值的新行。)

答案 1 :(得分:18)

这是因为在关系数据库术语中,您想要做的事情不是“插入”,而是“更新” - 您正在将现有行的字段从一个值(在您的情况下为NULL)更新为“test”

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

如果要更新100%的行,则不需要第二行。

答案 2 :(得分:2)

您实际在做的是添加行。要更新现有行的内容,请使用UPDATE语句:

UPDATE table SET table_column = 'test';

答案 3 :(得分:1)

UPDATE `table` SET table_column='test';

答案 4 :(得分:1)

您需要的SQL是:

Update table set table_column = "test";

您发布的SQL会创建一个新行,而不是更新现有行。

答案 5 :(得分:0)

要更新现有行的内容,请使用UPDATE语句:

UPDATE table_name SET table_column = 'test';

答案 6 :(得分:0)

要创建一个新的空列,并为每行(在Toad for Oracle 中,该行都填充相同的值,此处为100):

ALTER TABLE my_table ADD new_column INT;
UPDATE my_table SET new_column = 100;