お世話になります
osCommerceを使用して作成したサイトで急にエラーが出るようになりました
アクセスしてすぐになる場合と注文や会員登録の作業を進めていく途中でなる場合があるのですが
1062 - Duplicate entry '1205370033' for key 1
update whos_online set customer_id = '', full_name = 'Guest', ip_address = '218.46.206.111', time_last_click = '1205370033', last_page_url = '/vlg3/catalog/create_account_process.php' where session_id = '7f40c149da7b2a43ddb74c0096e8bff2'
といった表示なります
for key 1はfor key 3 になっている時もあります
管理画面(admin)は正常に動いており、商品情報の変更などもできております
正常に注文完了まで行く時もあるのですがずっと不安定です
サーバーに相談すると
1. phpMyAdminにログイン
2. データベースのテーブル「session」を選択。
3. sess_idのフィールドの編集画面に入ります
4. 種別を「VARCHAR」から「INT」に、その他を「auto_increment」に変更します。
5. 保存するボタンを押します。
とご指導いただきましたがだめでした
osCommerceの公式メーリングリストでも相談させていただきphpMyAdminでテーブルチェックをするよう教えていただいたので実行すると「whos_online」に問題があるようだったので「エラーを修復をする」を実行しましたがやはりだめでした
このエラーが出てから全く注文が入らなくなり困っています
どなたかおわかりになる方、お手数をおかけいたしますがご教授いただきますよう何卒お願い申し上げます
No.1ベストアンサー
- 回答日時:
osCommerceというのは、知りませんが。
。。>1062 - Duplicate entry '1205370033' for key 1
意味としては、primary keyまたはuniqueで一意な値しか許さないようにしているのに、重複する値で更新しようとしてエラーになっています。
>for key 1はfor key 3 になっている時もあります
一つの表でprimary key、uniqueなど、一意性の制約を複数定義している場合、何番目の制約で違反になったかを示す値です。
>サーバーに相談すると
>1. phpMyAdminにログイン
>2. データベースのテーブル「session」を選択。
~中略~
>5. 保存するボタンを押します。
>とご指導いただきましたがだめでした
これは、session表のsess_id列の値を自動的に生成するという対処です。
今回提示されたエラーメッセージとSQLの対応が合っているなら、whos_online表のtime_last_click列で重複エラーが起こっているように見えます。
あちこちの掲示板やメーリングリストに同じ内容の質問すると、アドバイスしようとする側も、どれが最新の情報か分からなくなったり、既に解決したものがいつまでも回答受付中になっていて、混乱することがあります。
関連するURLを示したり、どちらかは一旦締め切ったり(再質問する場合は、前回質問のNoやURLを提示)といった対応をお願いします。
この回答への補足
chukenkenkou様
お忙しい中回答いただき誠にありがとうございます
詳細なご説明を頂きエラーの意味などよく理解できました
本当にありがとうございました
この「教えてgoo」に投稿させていただいたのはサーバーに聞いてもosCommerceメーリングリストに聞いても解決策が得られなかったからです
ですので現在他の掲示板等で回答受付中になっているわけでは
ありません。どうしたらよいかわからず途方にくれてこちらに質問させて頂いた次第です
質問をさせて頂くまでの過程を補足させてください
1、1062 - Duplicate entry '1205370033' for key 1…のエラーが突然出るようになる(何か設定をいじったりはしておりません)
2、サーバー(カゴヤ)に相談をし「session表のsess_id列の値を自動的に生成する」手順を教えていただく
http://forums.oscommerce.com/index.php?showtopic …
3、改善されなかったのでosCommerceメーリングリスト(http://www.bitscope.co.jp/tep/ml.html)に相談をする
http://dev.mysql.com/doc/refman/4.1/ja/repair-ta …
http://dev.mysql.com/doc/refman/4.1/ja/corrupted …
のURLをお教え頂きましたが当方の未熟さゆえどうすればよいかわからず…
再度同じ方が回答を下さり
http://lists.sourceforge.jp/mailman/archives/tep …
上記URLの内容の回答を頂いたので
1. phpMyAdminにログイン
2. osCで使用しているDBを選択
3. 「全てをマーク」
4. 「テーブルをチェックします。」
を実行しエラーが出ている「whos_online」の「エラーを修復する」を試みましたが現状は変わりませんでした
サーバーに修復依頼をしましたが代行作業はやっていないとの事で自分で解決策を見つけられずこちらに質問させて頂きました
「whos_online表のtime_last_click列で重複エラー」はどのようにすれば修復できるでしょうか?
もう一度osCommerceをインストールしなおしてサイトを作り直すしか方法はないのでしょうか?
お忙しい中ご面倒をおかけして本当に申し訳ございませんが
何卒ご教授いただきますようお願い申し上げます
No.2
- 回答日時:
#1です。
ある程度、状況は分かりました。
今回問題になっている「whos_online」表は、kamelove22さんが自分で表の設計を行ったのではなく、osCommerceをインストールすることで作られる表なのですよね?
もし、自分で設計から行った表ならば、重複禁止にすべきキー項目の見直しをしたり、重複禁止の制約自体を外すことも可能です。また、「重複の原因究明」は取りあえず置いておいて、重複の起因となっている行、さらにはその行に関連する他表の行を削除して暫定対策する方法も考えられるでしょう。
ところがサイト側から提供されている表であれば、重複禁止を外したり起因となっている行を削除することで、システムとしての整合性が保てなくなる可能性が高いです。
>のURLをお教え頂きましたが当方の未熟さゆえどうすればよいかわからず…
これは、MySQLのMyISAMというタイプテーブルタイプの場合、サーバダウンなどの要因でデータとインデクスが不整合を起こした場合などに有効な修復方法です。
確認ですが、重複エラーが起こっているのは、whos_online表だけですか?
もしそうであれば、いつもtime_last_click列の更新でエラーになっている感じですか?
つまり、
1062 - Duplicate entry '1205370033' for key 1
update whos_online set customer_id = '', full_name = 'Guest', ip_address = '218.46.206.111', time_last_click = '1205370033',
Duplicate entry 'xxxx'
のように表示されたとき、
update whos_online set ... time_last_click = 'xxxx'
と、xxxxの部分には同じ値が入っていますか?
時刻データのように見えるのですが、一般的には、その列を単一で重複禁止にはしないと思うのですよね。。。瞬間的に複数の更新があると、同一値になってしまう可能性がありますからね。
SQLを入力できる状態で、
show indexes from whos_online
と入力すると、どういうインデクスが定義されているか分かるのですが、一応、見てみますか?解決に結びつかない可能性が高いですが、提供されている表定義やツール類が、絶対に誤りがない訳ではないですからね。
この回答への補足
chukenkenkou様
お忙しい中ご丁寧な返信を頂き誠にありがとうございます
いざエラーメッセージをチェックしようとすると正常に
ページが表示される事が多くなかなかエラーメッセージを確認できず
ご返答が遅れて誠にもうしわけございません
>Duplicate entry 'xxxx'
>のように表示されたとき、
>update whos_online set ... time_last_click = 'xxxx'
>と、xxxxの部分には同じ値が入っていますか?
これは表示されるたびに数値が変わっています
>確認ですが、重複エラーが起こっているのは、whos_online表だけですか?
>もしそうであれば、いつもtime_last_click列の更新でエラーになっている感じですか?
PHPmyadminで再度エラーチェックをしてみるとproducts_attributesでもエラーが出ました
これは以前はなく、whos_onlineだけだったんですが…
エラーメッセージは
テーブル `products_attributes` のインデックスに問題があります
カラム `products_attributes_id` に PRIMARY キーと INDEX キーを両方指定することはできません
テーブル `whos_online` のインデックスに問題があります
カラム `time_last_click` に PRIMARY キーと INDEX キーを両方指定することはできません
INDEX というキーがカラム `time_last_click` に複数作成されました
UNIQUE というキーがカラム `time_last_click` に複数作成されました
FULLTEXT というキーがカラム `time_last_click` に複数作成されました
カラム `session_id` に UNIQUE キーと INDEX キーを両方指定することはできません
INDEX というキーがカラム `session_id` に複数作成されました
UNIQUE というキーがカラム `session_id` に複数作成されました
FULLTEXT というキーがカラム `session_id` に複数作成されました
カラム `last_page_url` に UNIQUE キーと INDEX キーを両方指定することはできません
INDEX というキーがカラム `last_page_url` に複数作成されました
FULLTEXT というキーがカラム `last_page_url` に複数作成されました
カラム `time_entry` に UNIQUE キーと INDEX キーを両方指定することはできません
UNIQUE というキーがカラム `time_entry` に複数作成されました
FULLTEXT というキーがカラム `time_entry` に複数作成されました
INDEX というキーがカラム `ip_address` に複数作成されました
FULLTEXT というキーがカラム `ip_address` に複数作成されました
INDEX というキーがカラム `customer_id` に複数作成されました
FULLTEXT というキーがカラム `full_name` に複数作成されました
と、これだけたくさんのエラーが出ます
どうすれば修正できるでしょうか…?
>SQLを入力できる状態で、
>show indexes from whos_online
>と入力すると、どういうインデクスが定義されているか分かるのです>が、一応、見てみますか
もしよろしければ手順をご指導いただけますでしょうか?
ほかに聞ける人がないので甘えさせていただいてばかりで申し訳ございませんがご指導いただきますと幸いです
よろしくお願いいたします
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
SQLにて特定の文字を除いた検索...
-
SQLサーバから、項目の属性(型...
-
SQL Left Join で重複を排除す...
-
エクセルの関数について教えて...
-
Updateの複数テーブル条件時のL...
-
sqlで、600行あるテーブルを100...
-
[MySQL] UNIQUE制約の値を更新...
-
1テーブル&複数レコードの更新...
-
副問合せの書き方について
-
insertを高速化させたい
-
スクリーンセイバー
-
VIEWの元のテーブルのindexって...
-
マイクラPC版のコマンドで効率...
-
単純なクエリーなのにSELECTし...
-
ソート順の一番若い者を取得する
-
MySQL SELECT句でサブクエリで...
-
SQLServer2000 SQL文について
-
フィールド名を変数で指定するには
-
”photo id” とは何ぞや?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
エクセルの関数について教えて...
-
VIEWの元のテーブルのindexって...
-
副問合せの書き方について
-
select文のwhere句に配列を入れ...
-
マイクラPC版のコマンドで効率...
-
SQLサーバから、項目の属性(型...
-
エラー 1068 (42000): 複数の主...
-
[MySQL] 3つのテーブルの結合で...
-
Access パラメータクエリをcsv...
-
SQLにて特定の文字を除いた検索...
-
SQL Left Join で重複を排除す...
-
ストアドのエラーについて
-
Unionした最後にGROUP BYを追加...
-
バインド変数について
-
PL/SQLの変数について
-
sqlで、600行あるテーブルを100...
-
WordpressのContact form 7でzi...
-
selectした大量データをinsert...
-
inner joinをすると数がおかし...
おすすめ情報