sql 中是否可以把主键重新设置为非主键?

2024-11-28 03:38:46
推荐回答(5个)
回答(1):

楼主,你好!这个还是要看你的一个实际情况来看的。比如,你刚开始写DDL语句时,那么可以直接改掉就可以了;但是从你的问题来看,应该是已经通过DDL语句生成数据库表了,并且很有可能在表中就已经存在数据了。如果是如我所描述的,那么可以按如下方式来处理:

  1. 把数据库做备份,不要在正式库中直接修改。

  2. 首先,要了解哪些应用程序的代码使用了这张表,并和这张表的这个主键字段相关联。

  3. 其次,确定这张表取消主键后,会设置哪个字段为主键字段?本来表中已经的记录中,这个字段的值是否重复?如果重复的话,那么就不能调整。如果不重复的话,就可以调整。

  4. 最后,直接用DDL语句ALTER TABLE 的约束来调整主键字段。

  5. 我只给你说了一个大致思路,具体操作还是需楼主自己动手。

回答(2):

还是找到刚才导入的那一列,然後删除吧
将10000条数据先导入临时表
再inner
join
主表,找出那一条主键重复的
然後在主表裏面删除
再导入10000条数据
希望可以帮到你

回答(3):

可以重新设置,但是要求你新设置的主键满足主键的条件,比如这一列不能有重复的,如果有重复数据就会提示无法设置成主键的。

回答(4):

当然可以 alter table w1 drop constraint pk_xxxxx
pk_xxxx 主键名 如果不会语句可以从SQL界面操作

回答(5):

主键,就是不能重复。
主键标明表中每一行的唯一值,重复就不叫主键了