バージョン選択

フォーラム

メニュー

オンライン状況

62 人のユーザが現在オンラインです。 (47 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 62
もっと...

サイト内検索

質問 > 管理機能 > dtb_productのproduct_id関連について

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
tom79
投稿日時: 2013/9/10 20:09
対応状況: −−−
半人前
登録日: 2013/8/2
居住地:
投稿: 29
dtb_productのproduct_id関連について
お世話になっております。

先日も色々とご回答頂き大変助かりました。


再インストール後、ログインやページ閲覧等行えていましたが
本日さらに壁にぶち当たってしまいました。


1つ目は、以前のデータベースよりインポートした商品群に対して
コメントなどの編集・公開設定はできるのですが
規格編集(再登録)をするとシステムエラーとなります。

2つ目は、新規登録をすると同じようにシステムエラーとなります。

※デザインメニューからのページ新規作成(user_data以下に作成)は問題ありません。


エラーログを確認したところ
どちらもDB処理エラーが起きていて

1つ目は
引用:
[Native message: ERROR: duplicate key value violates unique constraint "dtb_products_class_pkey"]

2つ目は
引用:
[Native message: ERROR: duplicate key value violates unique constraint "dtb_products_pkey"]

と出ます。




先日と似たような症状ですが、
外部からの閲覧・注文確定等は問題なく行えており
移行した商品ページに関しては規格の変更のみがエラーで、他は問題なく更新できます。


過去スレッド等を参照していく中で
【〜_pkeyが同じの使われててダメだよ】というエラーではないかと思っています。

現時点での私の認識として「〜_in_seq」と「〜_pkey」は
表記が違うだけで同じ役割だと思っていますが、全然違ってるかもしれないので何とも言えません。


dtb_products_classのインデックス・検査制約には
引用:
名前:dtb_products_class_pkey
インデックス定義:CREATE UNIQUE INDEX dtb_products_class_pkey ON dtb_products_class USING btree (product_class_id)
検査制約定義:PRIMARY KEY (product_class_id)
検査制約:プライマリキー
Clusterd:いいえ

名前:dtb_products_class_product_id_key
インデックス定義:CREATE UNIQUE INDEX dtb_products_class_product_id_key ON dtb_products_class USING btree (product_id, classcategory_id1, classcategory_id2)
検査制約定義:UNIQUE (product_id, classcategory_id1, classcategory_id2)
検査制約:ユニークキー
Clusterd:いいえ

dtb_productsのインデックス・検査制約には
引用:
名前:dtb_products_pkey
インデックス定義:CREATE UNIQUE INDEX dtb_products_pkey ON dtb_products USING btree (product_id)
検査制約定義:PRIMARY KEY (product_id)
検査制約:プライマリキー
Clusterd:いいえ


と入っています。


過去の事例では「〜_in_seq」を重複しない値に変更して解決されているようなので
同じように「〜_pkey」を変更したいのですが、そもそも「〜_pkey」のどこに値が入っているのか分かりません。

もしくは「〜_in_seq」を作成する必用があるのであればどこにどう作成したらいいのか
ご教授いただけますと幸いです。



ちなみに、現時点でデータベース上にdtb_productsと付くテーブルは

・dtb_products
・dtb_products_class

の2つのみで、以前のデータベースも同様です。



よろしくお願いいたします。



EC-CUBEバージョン 2.12.4
PHPバージョン PHP 5.3.15
DBバージョン PostgreSQL 8.4.8
レンタルサーバー ラピッドサイト
phpPgAdmin
sakurasaku
投稿日時: 2013/9/10 20:45
対応状況: −−−
新米
登録日: 2009/10/22
居住地:
投稿: 1
Re: dtb_productのproduct_id関連について
プライマリキー(主キー)は、レコードの出席番号のようなものです。
なので、プライマリキーに設定すると、
「フィールド(カラム)の内容は重複しないものです」
とテーブル作成時に宣言していることになります。

さて、件のエラーですが、
プライマリキーに指定しているフィールドにほかのレコードで指定されている値を
設定しようとしてエラーを出しているのだと思います。

ここで、_seq(シーケンス)ですが、
プライマリキーとは全く別の役割で、連番を発行するための仕組みです。
次に発行すべきIDは何か、記憶している感じです。

この、次に発行すべきIDが、再インストール(DBリストア?)の影響で、
初期化されているのではないでしょうか?
流れ的には、

シーケンス(**_seq) から次のID採番
※シーケンスの情報が初期化されているためすでにテーブルにあるID発行

プライマリキー設定のフィールドにシーケンスから取得したID設定

「プライマリキーのフィールドが重複しているよ」とエラー

お調べになった、過去の事例のように、
シーケンスを設定しなおす事で解決するような気がします。

間違っていたら申し訳ありません。
※有識者の方、説明に間違いがあればぜひ突っ込みを。。。
tom79
投稿日時: 2013/9/10 21:04
対応状況: −−−
半人前
登録日: 2013/8/2
居住地:
投稿: 29
Re: dtb_productのproduct_id関連について
sakurasaku様

ご回答ありがとうございます。

早とちりする前に_seqと_pkeyが別物と分かり助かりました。
また、プライマリキーのエラー原因もなるほどと思いました。


シーケンスについてですが、データベース内を見ている限り見当たりません。。。

生成されていないのでしょうか?
それとも、データベースではなくECCUBEのファイル等
見る場所が全然違うのでしょうか?


よろしくお願いいたします。

bratech
投稿日時: 2013/9/11 9:16
対応状況: −−−
長老
登録日: 2008/11/28
居住地: 福岡
投稿: 223
Re: dtb_productのproduct_id関連について
phpPgAdminを利用されているのであれば
テーブルという項目とは別にシーケンスという項目がございませんか?

そちらを見ると該当する情報が見つかるかと思います。


----------------
★売れる通販サイト作ります! ========================
(株)ブラテック EC-CUBEカスタマイズサービス
http://www.bratech.co.jp/lpo/eccube.html
==============================================

tom79
投稿日時: 2013/9/11 10:04
対応状況: −−−
半人前
登録日: 2013/8/2
居住地:
投稿: 29
Re: dtb_productのproduct_id関連について
bratech様

ご回答ありがとうございます。

ありました!
テーブルばかり目が行ってしまっていましたf^^;


dtb_products_product_id_seq
dtb_products_class_product_class_id_seq

とも

・開始値=_idの末番号
・最終値=開始値+1

としてみましたところ、直りました!


新規登録、既存ページの規格変更全て問題なしです。
これでようやく本来の業務に精進できそうです^^


ご回答頂きました皆様本当に有難うございますm(_ _)m


スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は89,081名です
総投稿数は110,029件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
5
umebius
2085
6
yuh
1819
7
h_tanaka
1649
8
red
1570
9
mcontact
1297
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.