
バージョン4.1.16を使っています。
jyunban(順番)を設けて、ある行が削除されたら
それより後ろにある行全てのjyunbanを1つ前に繰り上げたいです。
id name jyunban
1 鈴木 1
2 吉田 2
3 加藤 3
4 田中 4
5 佐藤 5
6 高橋 6
7 渡辺 7
とあって、例えばid「2」とid「5」を削除した時に
jyunbanの値を前に詰めたいのです。
id name jyunban
1 鈴木 1
3 加藤 2
4 田中 3
6 高橋 4
7 渡辺 5
これはトリガーなどを使わないと無理なのでしょうか?
それともそもそもjyunban(順番)という列を使わずに
これと同じような概念を作ることは可能なのでしょうか?
No.4ベストアンサー
- 回答日時:
こんにちは。
まず、MySQL 4.x シリーズですと希望の動作は、
私の知ってる範囲ではできません。
MySQL 5.x シリーズではストアドプロシージャがサポートされています。
「削除」という操作を、ストアドプロシージャで行い、削除と同時に
順番を更新すればよいのではないでしょうか?
但し、その場合、注意しなければならないのは、同時更新への対応です。
すべてのレコードに対して変更が加えられる可能性がありますから、
Aユーザーが更新中に、Bユーザーが更新した場合に正しく更新されるか、
という点については慎重にテストしなければいけません。
ご返答ありがとうございます。
ストアドプロシージャという方法を使ってでも
そんなに簡単にうまくいくわけでもなさそうですね・・・
どうもjyunbanの設置には無理がある気がするので
変更を検討していきたいと思います。
No.3
- 回答日時:
(1)この「順番」は、何のために必要なのですか?
(2)データ件数は、最大で何件くらいになりますか?
(3)同時にこの表にアクセスするのは、一人だけに限定できますか?
(4)「特定データを削除して番号をずらせる」に加え、「あるデータとあるデータを置換」という要件があるとのことですが、「あるデータとあるデータの間に挿入」といった要件も出てくるのでは?
(5)バージョン4.1.16では、トリガやストアドプロシジャは使えませんよ?
No.1
- 回答日時:
後から空いているidに追加する事はあるんでしょうか?
そうでなければidでソートすればいいだけの様な感じがしますが・・・
ご返答ありがとうございます。
説明不足で申し訳ありません。順番の入れ替えも行いたいと思ってるので
やはりjyunban(順番)という項目を作る必要があると思うのです。
例えば、加藤と高橋の順番を入れ替えると
id name jyunban
1 鈴木 1
3 加藤 4
4 田中 3
6 高橋 2
7 渡辺 5
主キーのidは変わらずに、こういう形になると思います。
そうなった場合、2つ(id「2」とid「5」)削除した時に
jyunbanも変わっている必要があるので、
そういう変えられるSQL文や、あるいは方法が知りたいです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
【Transact-sql】 execの結果を...
-
ソフトバンクの無料着うたのお...
-
WordpressのContact form 7でzi...
-
php+mysqlで複数選択削除について
-
テーブルが5つの時の結合の仕...
-
Postgreのupdateコマンドでエラー
-
PL/SQLの変数について
-
select文のwhere句に配列を入れ...
-
エクセルの関数について教えて...
-
AUTO_INCREMENTのあるテーブル...
-
sqlで、600行あるテーブルを100...
-
SQLにて特定の文字を除いた検索...
-
#1136 - Column count doesn't ...
-
最小値をUPDATE
-
MYSQLの論理削除について質問で...
-
HAVING count()で重複したデー...
-
selectした大量データをinsert...
-
SQLサーバから、項目の属性(型...
-
このサイト(ttp://127.0.0.1/p...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
エラー 1068 (42000): 複数の主...
-
エクセルの関数について教えて...
-
VIEWの元のテーブルのindexって...
-
sqlで、600行あるテーブルを100...
-
SQLサーバから、項目の属性(型...
-
SQL Left Join で重複を排除す...
-
Access パラメータクエリをcsv...
-
クエリ表示と、ADOで抽出したレ...
-
ストアドのエラーについて
-
マイクラPC版のコマンドで効率...
-
バインド変数について
-
SQLにて特定の文字を除いた検索...
-
副問合せの書き方について
-
【Transact-sql】 execの結果を...
-
”photo id” とは何ぞや?
-
mysql+phpをつかったカートつく...
-
MySQL5.5 viewの処理速度改善に...
-
select文のwhere句に配列を入れ...
-
テーブル名を省略して「h.id」...
おすすめ情報