簡體   English   中英

添加不是主鍵SQL的自動增量列

[英]Add an Auto increment column that isnt a primary key SQL

我有一個表,用於跟蹤磁盤上的文件。 我將文件路徑設置為主鍵,因為這是唯一的數據。 我想添加一個新列,該列是自動遞增的,而不是主鍵。 能做到嗎? 我想要此列,以便我可以使用id而不是大的長文件路徑字符串訪問數據。

ALTER TABLE `Media`  ADD `ID` INT NOT NULL AUTO_INCREMENT

#1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key

更改表結構,以使文件路徑聲明為unique而不是primary 然后添加一個自動遞增的主鍵。

ALTER TABLE `Media` DROP PRIMARY KEY, 
  ADD UNIQUE KEY (`FilePath`), 
  ADD `ID` INT AUTO_INCREMENT FIRST, 
  ADD PRIMARY KEY (`ID`);

使用整數主鍵而不是字符串有很多優點。 例如,輔助索引將使用主鍵來訪問行,因此擁有完整的文件路徑只會使索引大於所需的大小。

ALTER TABLE
        `Media`
ADD     `ID` INT NOT NULL UNIQUE AUTO_INCREMENT

您必須插入這樣的行:

SET @ID = 0;

INSERT INTO Media  (ID,  SomeColumn) VALUES  (@ID := @ID + 1, 'Some Text');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM