2011-01-14 15 views
25

私はカラムを持つテーブルを持っています。それはtable_columnと呼ばれ、現在テーブルのすべての行に対してnullです。すべての行に対してその列に値"test"を挿入したいと思います。誰かが私にこのためのSQLを与えることができますか?同じ固定値を複数の行に挿入します

私はINSERT INTO table (table_column) VALUES ("test");を試しましたが、最後の行だけが入力されます。一度にすべての行をどうやって行うのですか?

答えて

57

あなたはUPDATEを探しています。 INSERTは、新しい行を追加しているのに対し、

UPDATE mytable 
SET table_column = 'test'; 

UPDATEは、それが唯一の最後の行を変更ように見えますこれは(、既存の行の値を変更します(そしてそれが唯一の特定の行に影響を与えるようにするWHEREを含めることができます)実際にはその値を持つ新しい行を追加しています)。

+0

は私が実際に* *オートインクリメントの主キーを除く(すべて同じ列値を持つ複数の行を挿入したいんので質問を発見した私はないだろうとにかくインサートに入れてください)。 – Michael

+0

'Workbench'がエラーを発行する場合は、' SET SQL_SAFE_UPDATES = 0; 'を使用してください。 – Arefe

17

これは、リレーショナルデータベース用語では、何がやりたいことは挿入と呼ばれていないためですが、UPDATING - あなたは「テスト」

UPDATE your_table SET table_column = "test" 
WHERE table_column = NULL 
に一つの値(あなたの場合はNULL)から既存の行のフィールドを更新しています

行の100%を更新する場合は、2行目は必要ありません。

+1

あなたは答えと理由を投稿した唯一の他の人ですから+1しました。 SOの誰も推論や参照をもう投稿していないようだが、彼らは最初に引き分けたい。 –

+0

皮肉なことに、私は包括的な答え、特に参照リンクのために+1を与えました:) – DVK

+0

@Brad公正であるために、あなたは生の回答のみを最初に投稿しました - そしてあなたの投稿を編集して説明を追加しました。私が答えを送ったとき、あなたのものは30インチ先にあり、すでに2つのアップフォートを持っていました...そうです、最初のドローで*そのような質問のアップヴォートを取得してください –

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

必要なSQLは次のとおりです。あなたが投稿

Update table set table_column = "test"; 

SQLは、既存の行を更新するのではなく、新しい行を作成します。

2

あなたが実際にやっていることは、行を追加することです。既存の行の内容を更新するには、UPDATEステートメントを使用します。

UPDATE table SET table_column = 'test'; 
関連する問題