[英]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.