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

如图所示,表中Id已为主键,我想要把name也设置为主键,该怎么做,用如下语法不对,报错“incorrect column specifier for column 'name' ”!
alter table mytable_1 modify name char(1) auto_increment,add primary key (name);

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

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

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

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

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

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

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

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

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-11-25
首先你必须把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)本回答被提问者采纳
第2个回答  2012-05-21
把表里面的数据备份到另外一张表里面 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 ;

mysql 中如何给已存在的表中字段增设置主键?
1、打开navicat工具,连接上mysql服务器,选择完数据库之后,选择一个表右击选择设计表(这里为了演示测试,随便选择一个表即可)。2、在设计表页面,可以看到当前表的所有字段信息,我们选择的学生表有一个id字段,目前该表没有主键字段。3、如图,在最后一列右击选择主键,即可将该字段设置为主键,也可...

MySQL 让有数据的表 主键从1开始连续自增
步骤一:调整字段属性针对InnoDB引擎的表,首先取消该字段的自动递增功能,移除“不是null”的约束,并且移除主键标识。操作如下图所示:而对于MyISAM引擎,同样取消自动递增,去除非null约束和主键,然后将自动递增的值设为0。务必在这一阶段保存设置,以确保从1开始自增,而不是基于之前的最大主键值。步...

如何在MySQL中设置自增主键mysql中主键设成自增
一、创建表时设置自增主键 1. 打开MySQL的命令行,输入以下命令创建一个students表:CREATE TABLE students (id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,name VARCHAR(50),age INT,gender VARCHAR(10));2. 在创建表时,将id字段设置为主键,并在其后面添加AUTO_INCREMENT选项,MySQL就会自动为每条记...

MySQL设置主键简单易懂的步骤指南mysql设置主键
1.首先,使用MySQL管理器装载数据库服务器,并选择要创建主键的表。2.接下来,双击表名,打开表编辑窗口,进入表编辑状态。3.点击“索引”,然后从下拉菜单中选择“新建”,弹出“新建索引”窗口。4.在“索引”窗口中,将“索引类型”设置为“主键”,并在“字段”列表中选择要作为主键的列。5.点击...

MySQL数据库中主键设置的方法详解mysql中主键的设置
在MySQL数据库中,主键可以通过以下几种方式来设置。1.创建表时设置主键 创建表时可以直接在其中的一列上添加主键约束,示例代码如下:CREATE TABLE `table_name` (`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(50) NOT NULL,`age` int(11) NOT NULL,PRIMARY KEY (`id`)) ENGINE=...

mysql自动增长主键怎么设置?
先双击拉出TABLE,在TABLE上右键创建新表。解决方案:将主键设置为自动增长。可以在数据库手动将相关表设置ID为自增长 手动将表设置为自增长有弊端,建议在annotation里边的POJO类使用注解方式设置自增长。mysql的数据库如图所示设置。保存执行即可解决问题 查看数据库,果然自增了 ...

MySQL数据库主键设置方法介绍与注意事项mysql中主码怎么设置
2. 主键的设置方法 在MySQL中,可以通过以下两种方法来设置主键:方法一:使用CREATE TABLE语句创建表时直接设置主键 在CREATE TABLE语句中,可以通过在字段声明后加上PRIMARY KEY关键字来设置主键。例如:CREATE TABLE student (id INT NOT NULL,name VARCHAR(20) NOT NULL,age INT,PRIMARY KEY (id))...

在MySQL中如何设置主键和外键
方法\/步骤 设置主键:1、通过终端进入到mysql命令行工具。2、通过use关键字进行到目标数据库里。3、如原表已有主键,先把原来的主键删除掉,通过DROP PRIMARY KEY命令:ALTER TABLE `jingyan` DROP PRIMARY KEY;。4、主键已经没有了。5、通过命令:ADD PRIMARY KEY来添加ALTER TABLE `jingyan` ADD ...

建立一张mysql的表 已有了ID 将ID设置成 主键自动增加
DROP TABLE IF EXISTS `user`;(user为你已经建好的名字)CREATE TABLE `user` (`id` int(11) NOT NULL auto_increment,(auto_increment控制主键自曾1)`gid` int(11) default NULL,`username` varchar(15) NOT NULL,`password` varchar(15) NOT NULL,PRIMARY KEY (`id`),--->设置主键 ...

MySQL表中如何修改主键mysql中主键修改
1. 停止自增列 如果当前主键列是一个自增列,那么需要先暂停该列的自动增量设置。这可以通过以下命令实现:ALTER TABLE 表名 MODIFY 列名 列类型 NOT NULL;其中,列名和列类型分别是原主键列的名称和数据类型,NOT NULL表示该列不允许为空。2. 删除原有主键 使用以下语法从表中删除原有的主键:ALTE...

相似回答