mysqlは同時に2つのテーブルの構想を修正します
3155 ワード
1.需要:コメントシートのニックネームを携帯電話番号の最後の4桁に変更します.
2.誤動作(MID(issuer_name,4,6)は中間の6ビット)のため、データロールバックが必要となる.
3.中間表の作成(AND 1<>1条件が空表の作成に適合しない)
4.中間テーブルへのデータのインポート
5.データ復旧
UPDATE trans_eval SET issuer_name = MID(issuer_name,4,6) WHERE CHAR_LENGTH(issuer_name) = 11 AND issuer_name LIKE '1%';
2.誤動作(MID(issuer_name,4,6)は中間の6ビット)のため、データロールバックが必要となる.
3.中間表の作成(AND 1<>1条件が空表の作成に適合しない)
CREATE TABLE tmp
SELECT T2.REG_NO,T2.MOBILE,t1.`issuer_name` FROM trans_eval t1,member t2 WHERE t1.issuer_no =t2.`reg_no`
AND MID(t2.`mobile`,4,6) =t1.`issuer_name` AND 1<>1 GROUP BY T2.REG_NO,T2.MOBILE,t1.`issuer_name` ;
4.中間テーブルへのデータのインポート
INSERT INTO tmp
SELECT T2.REG_NO,T2.MOBILE,t1.`issuer_name` FROM trans_eval t1,member t2 WHERE t1.issuer_no =t2.`reg_no`
AND MID(t2.`mobile`,4,6) =t1.`issuer_name` GROUP BY T2.REG_NO,T2.MOBILE,t1.`issuer_name` ;
5.データ復旧
SELECT * FROM tmp;
UPDATE tmp t1,trans_eval t2 SET t2.`issuer_name`=t1.`MOBILE` WHERE t1.`REG_NO`=t2.`issuer_no`;