1
CREATE TABLE `tblspmaster` (
  `CSN` bigint(20) NOT NULL AUTO_INCREMENT,
  `SP` varchar(50) NOT NULL,
  `FileImportedDate` date NOT NULL,
  `AMZFileName` varchar(580) NOT NULL,
  `CasperBatch` varchar(50) NOT NULL,
  `BatchProcessedDate` date NOT NULL,
  `ExpiryDate` date NOT NULL,
  `Region` varchar(50) NOT NULL,
  `FCCity` varchar(50) NOT NULL,
  `VendorID` int(11) NOT NULL,
  `LocationID` int(11) NOT NULL,
  PRIMARY KEY (`CSN`)
) ENGINE=InnoDB AUTO_INCREMENT=20018215 DEFAULT CHARSET=latin1;

ここで table schema の AUTO_INCREMENT=20018215 の意味は何ですか。レコードを挿入500kしているので、ID は 1 から まで OK です500kが、次のレコードを挿入しようとすると500k、次のレコードの ID 列の値は524281ではなく500001.

4

2 に答える 2

2

これは、( に) 最初に自動割り当てされる値CSNが 20018215 になることを意味します。

于 2013-09-21T09:10:43.420 に答える
0

大きな初期値 20018215 は、MySQL Workbench で [Send to SQL Editor] -> [Create Statement] メニューを選択したときの自動インクリメントの以前の値であった可能性があります。これは、以前のレコードを再インポートする必要がある場合に備えて、既存のデータをスキップするための安全な値です。

同じ質問がありましたが、既知のテーブルからいくつかの「作成」編集テンプレートを生成した後、AUTO_INCREMENT 値がそれらのテーブル内の既存のレコードの量に対応していることに気付きました。新しいテーブルを主キー = 1 で開始したいので、テンプレートから大きな値を削除しました。

于 2015-03-19T18:40:58.447 に答える