小春网

 找回密码
 注册账号
查看: 2595|回复: 10
收起左侧

[IT 交流] MySql建完表后添加主键的问题,求指点

[复制链接]
发表于 2015-8-29 01:45:56 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册账号

x
最近自己做一个小玩意,遇到个问题.
MySql数据库,建完表,并且在表里面添加完部分数据后发现需要用到主键,想添加主键
可是老是提示出错,假设表名是user, 字段是name,age,我现在想添加个字段:id,我是先添加字段

alter table user add column id int first;

然后接着想把这个id属性改为自动增长,作为主键

alter table user modify id int auto_increment;

结果这一步报错了,there can be only one auto column, and it must be definded as a key.
是要我先添加字段并设为主键以后才能设置auto_increment属性吗?
可是那样的话,新添加的id字段列数据肯定为空,而对于已经有了数据的表来说肯定不允许值为null的主键存在.
是不是要分几步来操作,还是有可以一步到位的方法呢?网上查了好多,试过全不行.求指点
发表于 2015-8-30 18:26:05 | 显示全部楼层
迷糊的感觉:数据库里已经有一个自动增长的数据段了,就会出现这种问题

能想办法把数据库的完整的表结构导出来看看吗?
回复

使用道具 举报

 楼主| 发表于 2015-9-2 11:00:46 | 显示全部楼层
谢谢迷糊每次对我发的贴都给出的指点和意见.

数据库的表结构在图片附件里面.
字段ID是后来把表删掉重新建表时候添加上去的.
除此之外其他的字段是原有的.
其他字段都没有自动增长属性.
也就是说在建好的表当中,没有一个字段有自动增长属性的情况下,我想往表里
添加一个ID字段,并设为自动增长,这时候出现
there can be only one auto column, and it must be definded as a key.
这样一个错误.
columns.png
回复

使用道具 举报

发表于 2015-9-2 17:41:19 | 显示全部楼层
看不懂,路过学习支持!!
回复

使用道具 举报

发表于 2015-9-2 20:58:06 | 显示全部楼层
表里不是已经有了一个id字段,并已经被设为自动增长
是不是这个原因?

你可以试试别的名字,比如添加一个ID123字段,并设为自动增长,看看是否出错
回复

使用道具 举报

 楼主| 发表于 2015-9-3 04:51:22 | 显示全部楼层
那个id字段是后来把表删了,重新建表的时候添加上去的
回复

使用道具 举报

发表于 2015-9-3 20:49:45 | 显示全部楼层
Taoism_Judaism 发表于 2015-9-3 04:51
那个id字段是后来把表删了,重新建表的时候添加上去的

回复

使用道具 举报

发表于 2015-9-20 02:41:41 | 显示全部楼层
alter table user add column id int first;
这个只是追加了一个 id字段, 但是没有把这个字段设成主键。

there can be only one auto column, and it must be definded as a key.
这里说auto increment字段首先它必须是个主键。 即  primary key

追加ID字段以后, 是不是还要加如下语句?

ALTER TABLE テーブル名 ADD PRIMARY KEY (カラム名1[,カラム名2...]);
如果追加ID之前已经有主键了, 那么需要把 后追加的 Id字段 ADD 进去 , 即先删掉原来的主键,再重新加上去

ALTER TABLE テーブル名 DROP PRIMARY KEY



回复

使用道具 举报

发表于 2015-9-22 01:29:36 | 显示全部楼层
倒出来,在倒回去.....

既然表没啥用了,drop掉后,可以重新建立,直接在建立的sql上标注 key和increase不是更省事...

导出的时候,稍微格式化导出数据...格式化成符合你要求的数据,这样导入省事些.
先DB备份...
回复

使用道具 举报

发表于 2015-9-22 20:36:50 来自手机 | 显示全部楼层
没遇到过这种情况,感觉先加id字段,写sql给id赋值,再改成pk,再改成自动增长,这里如果出问题,可以设定从哪里开始增长。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

小春网
常务客服微信
微信订阅号
手机客户端
扫一扫,查看更方便! 快速回复 返回顶部 返回列表