0

自動インクリメントされた主キーを持つMySQLのメモリ内テーブルを使用しています。

MySQL を再起動すると、インメモリ テーブルが期待どおりに空になります。

ただし、自動インクリメント値を保持して、次に挿入される行が最後のセッションで使用された後の ID を持つようにしたいと考えています。

それは可能ですか?

4

2 に答える 2

1

再起動後、このステートメントを使用して、AUTO_INCREMENT列に使用する次の値を変更できます。

ALTER TABLE mytable AUTO_INCREMENT = new_value;

構文は似ていCREATE TABLEますが、メモリ テーブルは再起動後に再作成されるため、あまり役に立ちません。

この呼び出しのタイミングが重要な場合は、起動スクリプトに追加することをお勧めします。私は他の方法を知りません。

于 2012-10-24T11:58:20.627 に答える
0

ALTER TABLE初期自動増分を計算するための関数が必要だったため、ステートメントを使用できませんでした。

解決策は次のとおりです。

  1. my.cnf[mysqld]追加したヘッダーの後にファイルが変更されましたinit-file = [file_path]

  2. ファイルは、ダミー値を使用してテーブルに挿入を実行します(たとえばINSERT INTO mytable(id) VALUES (UNIX_TIMESTAMP())、この後、必要に応じて行を削除できます。

于 2012-10-29T14:00:44.613 に答える