私はmySQLデータベースを持っており、それに接続してデータ操作を行うPerlスクリプトを持っています。 DB内のテーブルの 一つは、次のようになります。私は、この表にいくつかのデータを挿入したいmySQL DBの値が存在するかどうかを確認するには?
CREATE TABLE `mydb`.`companies` (
`company_id` INT NOT NULL AUTO_INCREMENT,
`company_name` VARCHAR(100) NULL ,
PRIMARY KEY (`company_id`));
。問題は、データ内の一部の企業が繰り返すことができるということです。
質問: "company_name"が既に存在することを確認するにはどうすればよいですか?存在する場合、私は "company_id"を取得し、それを使って別のテーブルにデータを挿入する必要があります。そうでなければ、この情報をこのテーブルに入力する必要がありますが、私はすでにこのコードを持っています。
ここにいくつかの追加要件があります:スクリプトは複数回同時に実行できるので、ハッシュにデータを読み込んで、それがすでに存在するかどうかを確認することはできません。
私は追加の "SELECT"クエリをスローすることができますが、それはDBに追加のヒットを作成します。
私は答えを探しましたが、ここでのすべての質問やウェブ上のスレッドはプライマリキーチェックの使用について話しています。私はこれを必要としません。 DB構造は既に設定されていますが、必要に応じて変更することができます。この表は追加の表として使用されます。
別の方法がありますか? DBとPerlの両方で。
会社名はプライマリキーの一部である必要があります。そうした場合は問題はありません。 – Mat
良い点、マット。私は私の答えにオプション2としてそれを追加しました。 –
InnoDBまたはMyISAM? –