0

データベース内の行を更新するには、INSERT、REPLACE、または ON DUPLICATE KEY UPDATE のいずれを使用するのが適切ですか?

私は現在使用しています:

mysql_query("insert into pages (pages_id, pagename, pagedesc, pagekey, pagecont) values('$pages_id', $pagename', '$pagedesc', '$pagekey', '$pagecont')");

DB に新しい行を作成します。

pages_id は、mysql データベースの auto_increment フィールドです。データベース内の既存の行を更新する最良の方法がわかりません。

4

4 に答える 4

3

皮肉なことに、UPDATESQL で行を更新するために使用します。

UPDATE pages SET ... WHERE pages_id = $pages_id;
于 2012-05-16T13:12:36.953 に答える
3

既存の行を更新している場合 (そして、それが存在することを 100% 確信している場合) は、間違いなく UPDATE を選択してください。

しかし

存在しない可能性のある行を「更新」している場合は、「INSERT...ON DUPLICATE KEY UPDATE」に進みます。

于 2012-05-16T13:18:46.543 に答える
0

UPDATEpages_id?を使用して指定しますか?

ここにチュートリアルがありUPDATEます: UPDATE チュートリアル

ちょっとした例:

mysql_query("UPDATE pages SET pagename = $pagename WHERE pages_id = $page_id");

まったく別の話ですが、mysql* 関数の使用をやめて PDO の使用を開始すると、はるかに安全になります!

于 2012-05-16T13:12:25.863 に答える
0

INSERTは常に より重い操作ですUPDATEINSERT新しく挿入されたアイテムにメモリを割り当てるUPDATE必要がありますが、テーブルで検索を実行し、新しいメモリを探す必要はありません。この違いは、短期間に多くのレコードを挿入する必要がある場合に重要になります。DBINSERTがあまりビジーではないUPDATEとき、そして必要なときに適しています。

于 2012-05-16T13:21:58.333 に答える