質問

たくさんのテーブルをエクスポートし、それらに「Ch_」を接頭して再びインポートしました。すべてphpmyadminを使用しています。それはすべて正常に動作します...私が何かを作りたいまで。このメッセージで失敗します:

user warning: Duplicate entry '4-4' for key 'PRIMARY' query: INSERT INTO ch_node (nid, vid, title, type, uid, status, created, changed, comment, promote, sticky) VALUES (4, 4, 'Nützliche Dokumente', 'page', 1, 1, 1288790996, 1288791130, 0, 0, 0) in /var/www/clients/client20/site60/docroot/includes/database.mysql.inc on line 172.

一方、私が保存しようとするたびに「4-4」が増えます。それは私がDBのAuto_increment値が何らかの形で間違っていると思うようになりました - それは私で正しく指定されていましたが export.sql. 。したがって、私はAuto_increment値をいくつかのばかげた高い数にリセットしようとしました ALTER TABLE some_table AUTO_INCREMENT=10000. 。まだ同じ行動…

ここで何が起こっているのかアイデアはありますか?

私はこの手順を数回前にしましたが、これが起こることなく。それは私を駆り立てています:/

役に立ちましたか?

解決 2

学んだ教訓:

DrupalはMySQLのAuto_increment値を使用しません。

自動増加がSQL ANSI標準の一部ではないことを学んだので、それは非常に一般的なことです。 Drupalは異なるRDBMのいくつかの実装に頼りたくないので、彼らはテーブルを持っています {sequences} これには、テーブル名の列があり、ロードできる次のID値があります db_next_id($ name). 。もちろん、テーブル名をプレフィックスすることで、シーケンステーブルにプレフィックスも追加する必要がありました。

そもそも私に夢中になったのと同じように、それはDrupal Developersが行った賢明な決断だと思います。

他のヒント

だから、あなたのインポートは正常に機能します、それはあなたがこのエラーを取得するすべてのインポートされた後に新しいレコードを挿入しようとするときだけですか?その場合は、次のとおりです。

  1. Auto_incrementは正しく設定されていません。
  2. Auto_incrementフィールドの値を指定しています。

上記の投稿から、Auto_incrementフィールドの値を指定しているようです。 Auto_incrementをテーブルの最大+1に更新する必要があります。その後、挿入すると、そのフィールドの値を指定しないでください。MySQLはauto_incrementを使用します...

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top