質問 > その他 > dtb_order_detail_order_detail_id_seq を eccube 外で変更した場合の同期方法 |
その他
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
eijit |
投稿日時: 2017/6/5 20:02
対応状況: −−−
|
新米 登録日: 2017/6/5 居住地: 投稿: 6 |
dtb_order_detail_order_detail_id_seq を eccube 外で変更した場合の同期方法 事情により、注文確定後にバッチ処理で商品の組み替えを行っているのですが、その際に dtb_order_detail.order_detail_id を新しく割り振るため dtb_order_detail_order_detail_id_seq.sequence も同時に適切な値になるようにメンテナンスしています。しかし eccube 内では dtb_order_detail_order_detail_id_seq.sequence の値がキャッシュされているようで、バッチ処理後に eccube から新規に注文を行うと、新規 dtb_order_detail.order_detail_id の割り振り時に古い dtb_order_detail_order_detail_id_seq.sequence の値が利用されるため dtb_order_detail.order_detail_id が衝突してしまいます。 sql server を再起動すればキャッシュがクリアされて値が同期されることはわかっているのですが、 sql server の停止を伴わずに dtb_order_detail_order_detail_id_seq.sequence の値を同期する方法はありますでしょうか?
|
yuh |
投稿日時: 2017/6/6 13:16
対応状況: −−−
|
神 登録日: 2013/1/9 居住地: 大阪 投稿: 1818 |
Re: dtb_order_detail_order_detail_id_seq を eccube 外で変更した場合の同期方法 ALTER SEQUENCEでdtb_order_detail_order_detail_id_seqの値を調整するのではダメでしたか?
|
eijit |
投稿日時: 2017/6/6 15:22
対応状況: 確認中
|
新米 登録日: 2017/6/5 居住地: 投稿: 6 |
Re: dtb_order_detail_order_detail_id_seq を eccube 外で変更した場合の同期方法 ご助言ありがとうございます。 db が mysql なので alter sequence と同等のことができるか不明でした。 php 側で dtb_order_detail_order_detail_id_seq をキャッシュしないようにできないか調べてみます。
|
yuh |
投稿日時: 2017/6/6 18:55
対応状況: −−−
|
神 登録日: 2013/1/9 居住地: 大阪 投稿: 1818 |
Re: dtb_order_detail_order_detail_id_seq を eccube 外で変更した場合の同期方法 MYSQLであれば
ALTER TABLE dtb_order_detail_order_detail_id_seq AUTO_INCREMENT=???; でAUTO_INCREMENTの値を進めたうえで dtb_order_detail_order_detail_id_seqにたしかDELETEしてNULLをINSERTでうまくいくかと思います。
|
eijit |
投稿日時: 2017/6/7 14:06
対応状況: 解決済
|
新米 登録日: 2017/6/5 居住地: 投稿: 6 |
Re: dtb_order_detail_order_detail_id_seq を eccube 外で変更した場合の同期方法 eccube というよりは sql の問題でしたが、ご助言いただいた方法で解決できました。ありがとうございます。
|
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |