2012-04-30 8 views
4

私のMySQLのテーブルのようなものです:は自動インクリメントの主フィールドで何が起こるか

userid(AI,PRIMARY) name password 
1      aa  dfsdfsdfds 
2      ioi  kjkjkjkjk 
(3) user deleted his account 
4      ghghj jhjhkhj 

、そこに情報

userid(will be userid from above table) address phone 
1           sfdsfds 9999999 
2           dfsdfdsf 333333 
3 (deleted) 
4           sdfdsf  999999 

私は意志を持つ別のテーブルがありますデータをバックアップして復元すると、テーブル1のテーブルデータはどうなりますか?

+0

どのようにバックアップと復元を実行していますか? – eggyal

+0

実際に別のデータベースでバックアップして復元しようとしましたか?何が起こった? – Mat

+1

自動増分列に選択した値(バックアップからの値など)を挿入できない場合は、非常に壊れてしまいます(IMNSHO)。しかし確かに、あなたはこれを試して、質問をするよりも素早く答えを見つけることができます。シンプルな表を作成し、データを入れ、バックアップし、復元し、答えを知る人生を始めるのは難しいことではありません。 –

答えて

5

データをエクスポートすると(つまり、mysqldumpを使用して)、すべてのキー(およびその値)がそのままエクスポートされます。あなたは一例で見たよう

CREATE TABLE yourtable (
    userid INT(10) unsigned NOT NULL auto_increment, 
    name VARCHAR(255) NOT NULL, 
    password VARCHAR(255) NOT NULL, 
    PRIMARY KEY (userid) 
) AUTO_INCREMENT=5; 
INSERT INTO TABLE yourtable (userid, name, password) 
VALUES 
(1, 'aa', 'dfsdfsdfds'), 
(2, 'ioi', 'kjkjkjkjk'), 
(4, 'ghghj', 'jhjhkhj') 

  • あなたの鍵が完全にバックアップさと
  • MySQLはそれに最後の自動インクリメント値とリターンを覚えているし、復元されているバックアップは基本的にはこのようになります値は次のINSERTです。 (次のユーザーID:5
+1

しかし、構造体ではなくデータをバックアップしたいので、CREATE文を含めないと、AUTO_INCREMENTは設定されません。私はあなた自身でそれを設定する必要があります。私はこれに遭遇し、そのようにしています。なぜなら、私は新しいシステムに構造を持ち越さず、代わりにメンテナンスされたモデルから新しい構造を使用したいからです。 – mikato

関連する問題