1

主キーなしで mysql テーブルの行を更新するプロシージャを作成することは可能ですか?

教師のスケジュールに対応する、次のようなテーブルがあります。

TEACHER_ID | WEEK_DAY |  HOUR | CLASS

1234567         2        11:30  MAT001
1234567         2        13:00  HIS001

スケジュールを含む .csv ファイルをロードし、その行がテーブルに既に存在するかどうかを確認し、更新するか、存在しない場合は挿入します。

.csv ファイルを取得したシステムではプライマリが作成されないため、テーブルにはプライマリがありません。

テーブルの更新/挿入に「WHERE」を使用するときに、フィールド「TEACHER _ID」、「WEEK_DAY」、および「HOUR」をキーとして組み合わせると思ったのですが、その方法がわかりません。

私が望むものを達成できますか?手伝って頂けますか?

回答ありがとうございます。

(文法の誤りについては、あらかじめお詫び申し上げます)

4

1 に答える 1

1

http://dev.mysql.com/doc/refman/5.0/en/create-index.htmlUNIQUE KEYで作成できますTEACHER_ID,WEEK_DAY,HOUR

CREATE UNIQUE KEY classes ON your_table_name (TEACHER_ID,WEEK_DAY,HOUR)`

次に、INSERT ... ON DUPLICATE KEY UPDATE http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.htmlを使用できます

INSERT INTO your_table_name (TEACHER_ID,WEEK_DAY,HOUR,CLASS) VALUES (1234567,2,11:30,MAT001)
 ON DUPLICATE KEY UPDATE CLASS=MAT001;
于 2013-07-12T02:53:38.983 に答える