Perlリファレンス

MySQL::REPLACE







REPLACE


データベースのテーブルに行を追加するのはINSERTだが、
PRIMARY KEYやUNIQUEを設定してあるテーブルでもし重複するデータを追加しようとした場合、
INSERTでの追加はできない。
すでにデータがある場合に更新するならUPDATEだが、
UPDATEでは存在しない場合に追加されない。

PRIMARY KEYやUNIQUEがあるテーブルを操作する場合はREPLACEが多いのではないだろうか。


use DBI;
$dsn="DBI:mysql:db";
$dbh=DBI->connect($dsn,'user','pass');
$dbh->do("REPLACE INTO Item (ItemId,ItemName) VALUES ('100','パソコン')");
$dbh->disconnect;
「ItemId」「ItemName」というフィールドのあるテーブルで、「ItemId」が主キーで、
ItemId=100の行のItemNameを'パソコン'にする例。
ItemId=100が存在しない場合は新たに追加。
ItemId=100が存在する場合は更新される。


MySQL入門






[編集] [新規] [削除] [バックアップ] [アップロード] [ログイン] [管理]
whwiki 1.3