2012-05-09 6 views
0

私の貧しい私の英語のために申し訳ありません。PHP/MySQLのカレンダー

「重複キー更新」を使用したいと思いますが、どのようにすればよいかわかりません。

私のMySQLデータベースが似ている:

id (primary key | autoincrement), id_hostel, date, allotement 

私のMySQLのクエリ:

insert into table (id_hostel, datebvj, allotement) VALUES 
('1','09/05/2012','7'), ('1','10/05/2012','5'), 
('1','11/05/2012','6') 
ON DUPLICATE KEY UPDATE allotement=VALUES(allotement) 

allotementは、問題を部屋

を意味します。このクエリは、すでに存在している場合でも、INSERTクエリを作りますデータベース内のデータ。

私はクエリを正常に実行したいと思います。

提案がありますか?

ありがとうございました。

+0

挿入するレコードが既存のレコードと同じであるかどうかをどのように判断しますか? 'id_hostel'が同じであればいいですか? – eggyal

+0

「REPLACE INTO」の使用を検討しましたか? – LeonardChallis

+0

私はそれを考慮する...ありがとう、レナード! – Pureandfast

答えて

1

「重複している」とは、挿入により重複レコードが作成された場合にのみ更新に変換されます。重複は一意の/主キーのインデックスに違反することを意味します。

与えられたテーブル構造では、変換をトリガーするために複写idフィールドを挿入する必要があります。他のフィールドには一意のキーはありません。また、insertステートメントはid値を挿入していないので、insert-> updateスイッチをトリガーする方法はありません。

+0

id_hostelは1から3(ホステル数)になります。 両方日付とid_hostelはレコードが挿入されているかどうかを決定します。 – Pureandfast

+0

Marcのやり方は? – Pureandfast

+0

私はクエリを変更しました: テーブルに挿入する(id_hostel、datebvj、allotement)VALUES( '1'、 '09/05/2012'、 '7')、( '1'、'10/05/2012 '、重複したキー更新で( '1'、 '11/05/2012'、 '6')id_hostel = VALUES(id_hostel) しかし、動作しません! – Pureandfast