その他 > バージョンアップ > DBバージョンupの際にdtb_csvを手動でマージする方法 |
バージョンアップ
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
zobzob |
投稿日時: 2025/5/29 5:23
対応状況: −−−
|
半人前 ![]() ![]() 登録日: 2010/3/14 居住地: 投稿: 11 |
DBバージョンupの際にdtb_csvを手動でマージする方法 [EC-CUBE] 2.11.5
[レンタルサーバ] cpi ACE01(ae****.secure.ne.jp) [OS] FreeBSD 10.4 [PHP] 5.5.27 [データベース] mySQL5.5.42 [WEBサーバ] Apache/2.2.34 [ブラウザ] GoogleChrome [導入プラグインの有無] なし [カスタマイズの有無] なし [現象] いつもお世話になっております。 現在、eccubeのバージョンアップのためにデータベースのアップデートに挑戦しています。 seasoft様の「EC-CUBEメモ」 https://www.seasoft.jp.net/ec/%E3%82%A2%E3%83%83%E3%83%97%E3%83%87%E3%83%BC%E3%83%88/2.12/2.11_2.12 を頼りに進めているのですが、phpMyAdminにて「dtb_csv」を手動でマージする具体的な方法について質問がございます。 上記URLの「dtb_csv」に関する記述「まずは、設定変更済みの箇所を特定する。該当箇所は、後から手動でマージする。(設定変更の移行が不要な場合、いきなり削除・挿入で良い。)」では、 DELETE FROM dtb_csv WHERE (no, csv_id, col, disp_name, rw_flg, STATUS, mb_convert_kana_option, size_const_type, error_check_types) = (***) AND rank IS NULL; となっていて、最終的に SELECT * FROM dtb_csv; とすることで設定変更済みの箇所を特定出来るよう組み立てていただいているように見受けられます。 試しにSQLタブの入力欄に一連のSQL文をコピーペーストして実行ボタンを押下したところ、 70項目ほど設定変更済みと思しきものが出て来ました。 当然といえば当然なのですが、設定変更済みのデータ(以下"旧データ")と 上記URLに載っている挿入すべきデータ(以下"新データ")で「no」が重複しています。 旧データの1つ目 (no=74, disp_name='のし', 〜〜〜) 新データのno:74 (no=74, disp_name='お名前(名)', 〜〜〜) 「これらのデータをマージする」に挑戦したいのですが、方法としては ーーーーー INSERT `dtb_csv` set `no` = 74, `csv_id` = 2, `col` = 'name02', `disp_name` = 'お名前(名)', `rank` = 3, `STATUS` = 1, `create_date` = CURRENT_TIMESTAMP, `update_date` = CURRENT_TIMESTAMP on duplicate key UPDATE `no` = 74, `csv_id` = 1, `col` = 'noshi', `disp_name` = 'のし', `rank` = 74, `rw_flg` = 1, `status` = 1, `create_date` = '2012-08-20 02:11:13', `update_date` = '2012-08-20 02:11:13', `mb_convert_kana_option` = 'n', `size_const_type` = 'INT_LEN', `error_check_types` = 'EXIST_CHECK,NUM_CHECK,MAX_LENGTH_CHECK' ーーーーー と書くと、 ・プライマリーキー「no」が重複しているので「のし」の「no」が更新される(恐らくdtb_csvの末尾に追加されると予想しています) ・「no=74, disp_name='のし'」と紐づいていたデータがもし存在したとしたらそれらも都合良く更新してくれる? という解釈で合っていますでしょうか? どなたか、解決のヒントをいただけましたら幸いです。 何卒よろしくお願い申し上げます。 ※下記URL中段の「on duplicate key updateで重複チェックし、存在すればupdateを実行」を参考にさせていただきました。 https://style.potepan.com/articles/17600.html |
mcontact |
投稿日時: 2025/5/30 15:48
対応状況: −−−
|
神 ![]() ![]() 登録日: 2022/1/22 居住地: 投稿: 1733 |
Re: DBバージョンupの際にdtb_csvを手動でマージする方法 引用:
「これらのデータをマージする」に挑戦したいのですが、方法としては 記載されているINSERT文では、 存在したとしたらそれらも都合良く更新されることはありません。
|
zobzob |
投稿日時: 2025/5/31 4:54
対応状況: −−−
|
半人前 ![]() ![]() 登録日: 2010/3/14 居住地: 投稿: 11 |
Re: DBバージョンupの際にdtb_csvを手動でマージする方法 mcontact様、ご投稿誠にありがとうございました。
|
mcontact |
投稿日時: 2025/6/3 16:48
対応状況: −−−
|
神 ![]() ![]() 登録日: 2022/1/22 居住地: 投稿: 1733 |
Re: DBバージョンupの際にdtb_csvを手動でマージする方法 dtb_csvテーブルのnoカラムにAUTO_INCREMENT属性がついているのであれば、INSERT文からnoカラムは外すことができます。
AUTO_INCREMENT属性がついていない様であれば、MAX関数+1でINSERT文を書くと良いと思います。
|
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |