[英]How to replace primary key with new column with autogenerated values in MySQL?
我有一張帶有下幾列的merchants
表: name, program_id, program_name
。 當前主鍵為name + program_id
我需要做的是添加一個新的列id
,用自動生成的值(最好是 uuid 或類似的東西)填充它並使其成為新的主鍵。
怎么做?
ALTER table merchants DROP PRIMARY KEY, ADD id INT NOT NULL AUTO_INCREMENT PRIMARY KEY;
如果您的數據庫引擎是innodb,我建議您使用自增integer 作為主鍵,而不是uuid,因為innodb 中的主鍵是聚集索引。自增primaryk 鍵可以減少分頁。
請注意,不僅插入具有 UUID 主鍵的行需要更長的時間,而且生成的索引要大得多。 其中一些是由於較大的主鍵,但其中一些無疑是由於頁面拆分和由此產生的碎片。
以及使用順序主鍵的缺點:
如果您想了解更多關於主鍵對頁面拆分或頁面合並的影響,您可以訪問這里
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.