如何将主属性从一个属性更改为另一个属性。mysql

如何将主属性从一个属性更改为另一个属性。mysql,mysql,sql,primary-key,surrogate-key,candidate-key,Mysql,Sql,Primary Key,Surrogate Key,Candidate Key,我有一个数据库,其中声明了一个主键。后来在实现数据库时,我意识到我必须创建一个自动递增的代理键,并将我当前的主键切换到该代理键,因为我当前的主键将不可避免地出现多次。我已经搜索了堆栈溢出的深度和其他站点,寻找答案,但我找不到合理的解决方案 具体来说,我为一个兄弟会创建了这个数据库,其中每个成员都有一个唯一的卷轴编号。使用卷轴号作为主键似乎是一个好主意,直到我意识到拥有一个以上专业的成员将有两个元组(一个表示每个专业,数据库必须在3NF中)。考虑到这一点,创建代理密钥是正确的做法,还是有更合理的解

我有一个数据库,其中声明了一个主键。后来在实现数据库时,我意识到我必须创建一个自动递增的代理键,并将我当前的主键切换到该代理键,因为我当前的主键将不可避免地出现多次。我已经搜索了堆栈溢出的深度和其他站点,寻找答案,但我找不到合理的解决方案


具体来说,我为一个兄弟会创建了这个数据库,其中每个成员都有一个唯一的卷轴编号。使用卷轴号作为主键似乎是一个好主意,直到我意识到拥有一个以上专业的成员将有两个元组(一个表示每个专业,数据库必须在3NF中)。考虑到这一点,创建代理密钥是正确的做法,还是有更合理的解决方案?

您需要在成员和研究领域之间建立多对多关系。因此,是的,您需要一个代理密钥。

这是不是可以不用废弃整个表并重新开始就可以做到的?我不确定代理键将放在哪里,因为每个表都已经使用滚动编号作为主键/外键。