mysql 中如何给已存在的表中字段增设置主键?

如图所示,表中Id已为主键,我想要把name也设置为主键,该怎么做,用如下语法不对,报错“incorrectcolumnspecifierforcolumn'name'”... 如图所示,表中Id已为主键,我想要把name也设置为主键,该怎么做,用如下语法不对,报错“incorrect column specifier for column 'name' ”!
alter table mytable_1 modify name char(1) auto_increment,add primary key (name);
展开
 我来答
百度网友a2546cf
高能答主

2019-12-24 · 有什么不懂的尽管问我
知道小有建树答主
回答量:1610
采纳率:100%
帮助的人:38.7万
展开全部

1、打开navicat工具,连接上mysql服务器,选择完数据库之后,选择一个表右击选择设计表(这里为了演示测试,随便选择一个表即可)。

2、在设计表页面,可以看到当前表的所有字段信息,我们选择的学生表有一个id字段,目前该表没有主键字段。

3、如图,在最后一列右击选择主键,即可将该字段设置为主键,也可以直接点击鼠标左键,可以快速添加和取消主键。

4、设置完主键之后,可以看到一把锁的标志,并且有一个1字,因为一个表可以给多个字段添加主键,则为联合主键,这样就显示为主键1,主键2等。

5、主键设置完成之后,还没有自增,选择id字段之后,在下方,如图,勾选自动递增,这样id在每次插入记录之后都会自增一个值。

6、设置完成主键和自增之后,点击保存,关闭当前窗口,然后选择表名右击选择对象信息。

7、在DLL页面中,可以看到刚刚添加的主键和自增的DLL语句,这里就是创建表的DLL语句。

8、上面有提到联合主键,其实一个表可以给多个字段设置主键,这样可以组成联合主键,对于特定的业务,联合主键也是必须的。

百度网友d2f3de142
推荐于2017-11-25 · TA获得超过186个赞
知道小有建树答主
回答量:121
采纳率:0%
帮助的人:119万
展开全部
首先你必须把name的条件改为not null
alter table mytable_1 alter column name char(1) not null
然后可以把原主键删除,再重新增加主键。
alter table mytable_1 drop constraint PK_mytable_1(主键名字)
alter table mytable_1 add constraint PK_mytable_1 primary key(id,name)
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wang27wh
2012-05-21 · 超过27用户采纳过TA的回答
知道答主
回答量:88
采纳率:100%
帮助的人:78.2万
展开全部
把表里面的数据备份到另外一张表里面 create table table2 as select * from table1;
然后把表里的所有记录删除 delete from table1;
-添加主键name
alter table table1 add constraint pk_table1 primary key(name);
将备份数据导回原表
INSERT INTO table1 SELECT * FROM table2 ;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式