###前提・実現したいこと
データ一覧の画面上に入力欄を作り、更新ボタン1つで全部のMySQL (MariaDB) 上のデータが更新されるようなページを作りたいと思っていますが、UNIQUEなカラムを含む場合の処理で悩んでいます。
MySQLのテーブル vegetable を以下のように設定しています。priorityはUNIQUEにし、重複がないようにしています。
|Column name| |
|:--|:--:|--:|
|id|Primary Key|
|name||
|priority|Unique|
ユーザーに、以下のようなUIで、野菜の優先順位を変えてもらえるようにしたいです。
「更新」ボタンを押すと、PHPがPOSTデータを読み取って、以下のSQL文を実行し、野菜の優先順位が更新されるようにしたいです。
SQL
1UPDATE `vegetable` SET `priority` = 1 WHERE `id` = 1 2UPDATE `vegetable` SET `priority` = 3 WHERE `id` = 2 3UPDATE `vegetable` SET `priority` = 2 WHERE `id` = 3
###発生している問題
しかし、当然ですが、上のSQL文の2行目を実行する時点で、priority=3がきゃべつとたまねぎとで重複するため、2行目の実行はエラーとなってしまいます。
このように、UNIQUEカラムのデータを一括で更新したい場合はどのように
実装するのがよいでしょうか?
最近PHPやMySQLの勉強を始めたため、基本的な部分で理解が足らないかもしれません。ご教授ください。
###環境
PHP: 5.6.16。
mysqli を使用して接続
DB: MariaDB 5.5.52
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/05/17 09:56
退会済みユーザー
2017/05/17 09:58
2017/05/17 10:02 編集
2017/05/22 01:02