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); 展开
alter table mytable_1 modify name char(1) auto_increment,add primary key (name); 展开
3个回答
展开全部
1、打开navicat工具,连接上mysql服务器,选择完数据库之后,选择一个表右击选择设计表(这里为了演示测试,随便选择一个表即可)。
2、在设计表页面,可以看到当前表的所有字段信息,我们选择的学生表有一个id字段,目前该表没有主键字段。
3、如图,在最后一列右击选择主键,即可将该字段设置为主键,也可以直接点击鼠标左键,可以快速添加和取消主键。
4、设置完主键之后,可以看到一把锁的标志,并且有一个1字,因为一个表可以给多个字段添加主键,则为联合主键,这样就显示为主键1,主键2等。
5、主键设置完成之后,还没有自增,选择id字段之后,在下方,如图,勾选自动递增,这样id在每次插入记录之后都会自增一个值。
6、设置完成主键和自增之后,点击保存,关闭当前窗口,然后选择表名右击选择对象信息。
7、在DLL页面中,可以看到刚刚添加的主键和自增的DLL语句,这里就是创建表的DLL语句。
8、上面有提到联合主键,其实一个表可以给多个字段设置主键,这样可以组成联合主键,对于特定的业务,联合主键也是必须的。
展开全部
首先你必须把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)
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)
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把表里面的数据备份到另外一张表里面 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 ;
然后把表里的所有记录删除 delete from table1;
-添加主键name
alter table table1 add constraint pk_table1 primary key(name);
将备份数据导回原表
INSERT INTO table1 SELECT * FROM table2 ;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询