[ec-cube] 顧客情報、受注情報をインポートした際の注意点

顧客情報のインポート

INSERT構文等を用いて顧客情報をインポートした場合、一見正常に登録されたように見えるが、
会員登録の完了画面でエラーが出て登録出来ない症状が起こる。

これはテーブル『dtb_customer』に対してだけインポートを行った事で
シーケンス値がずれてしまっているのが原因なので、
テーブル『dtb_customer_customer_id_seq』のシーケンス値を最大値に設定し直してあげる事で解決する。

例えば、
『dtb_customer』の customer_id の最大値が 37だった場合、
『dtb_customer_customer_id_seq』の sequence も37以上に設定し直す。

受注情報のインポート

上記同様『dtb_order』『dtb_order_detail』にインポートした際にも、

テーブル『dtb_order_detail_order_detail_id_seq』は order_detail_id 、
テーブル『dtb_order_order_id_seq』は order_id のシーケンス値を最大値に設定し直す。

シーケンス値の設定を怠った際のエラー内容

/data/logs/site.log より

〜上略〜
SQL: PREPARE mdb2_statement_mysql_(セッションID)
FROM 'INSERT INTO dtb_customer(name01,name02,kana01,kana02,zip01,zip02,pref,addr01,addr02,tel01,tel02,tel03,
password,reminder_answer,reminder,sex,job,mailmaga_flg,fax01,fax02,fax03,email,birth,status,secret_key,point,
update_date,salt,customer_id,create_date) 
VALUES 
(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,Now(),?,?,Now())'

MDB2 Error: constraint violation

_doQuery: [Error message: Could not execute statement]
[Last executed query: EXECUTE mdb2_statement_mysql_(セッションID) USING @0, @1, @2, @3, @4, @5, @6, @7, @8, @9, @10, @11, @12, @13, @14, @15, @16, @17, @18, @19, @20, @21, @22, @23, @24, @25, @26, @27]
[Native code: 1062]
[Native message: Duplicate entry '14' for key 'PRIMARY']
〜下略〜

Similar posts