84

I have a table table1 with three columns and a bunch of rows:

[key_col|col_a|col_b]

I want to update col_a with a set of values (i.e. leaving col_b unchanged), something like this:

INSERT INTO table1 AS t1 (key_col, col_a) VALUES ("k1", "foo"), ("k2", "bar");


But it doesn't work, how do I do this?

informatik01
  • 16,038
  • 10
  • 74
  • 104
Muleskinner
  • 14,150
  • 19
  • 58
  • 79

5 Answers5

128

You have to use UPDATE instead of INSERT:

For Example:

UPDATE table1 SET col_a='k1', col_b='foo' WHERE key_col='1';
UPDATE table1 SET col_a='k2', col_b='bar' WHERE key_col='2';
We're All Mad Here
  • 1,544
  • 3
  • 18
  • 46
Naveed
  • 41,517
  • 32
  • 98
  • 131
12
UPDATE table1 SET col_a = 'newvalue'

Add a WHERE condition if you want to only update some of the rows.

Chris Snowden
  • 4,982
  • 1
  • 25
  • 34
6

This is what I did for bulk update:

UPDATE tableName SET isDeleted = 1 where columnName in ('430903GW4j683537882','430903GW4j667075431','430903GW4j658444015')
radbyx
  • 9,352
  • 21
  • 84
  • 127
Abhay Shiro
  • 3,431
  • 2
  • 16
  • 26
3

if you want to fill all the column:

update 'column' set 'info' where keyID!=0;
Shawn Mehan
  • 4,513
  • 9
  • 31
  • 51
kairos
  • 39
  • 1
1

If you want to update data you should use UPDATE command instead of INSERT

piotrpo
  • 12,398
  • 7
  • 42
  • 58