0

たくさんのテーブルをエクスポートし、それらの前に「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。それでも同じ振る舞い…

誰かがここで何が起こっているのか考えていますか?

私はこの手順を数回前に行いました…しかし、これは起こりませんでした。それは私を狂わせています:/

4

2 に答える 2

0

学んだ教訓:

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

自動インクリメントはSQLAnsi標準の一部ではないことを学んだので、これは非常に一般的なことです。Drupalは、異なるRDBMSの一部の実装に依存することを望まないため、テーブル名の列と、 db_next_id($ name){sequences}でロードできる次のID値を持つテーブルがあります。もちろん、テーブル名にプレフィックスを付けることで、シーケンステーブルにもプレフィックスを追加する必要がありました。

そもそもそれが私を狂わせたのと同じくらい、それはdrupal開発者が下した賢明な決断だと思います。

于 2010-11-04T14:17:43.717 に答える
0

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

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

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

于 2010-11-03T14:01:32.570 に答える