mysql中主键、自增长问题

bingxinzhimeng 2012-11-19 10:41:49
各位好:
使用mysql,其中一张表是部门表,有字段id,deptId,deptName.
我想把id设为自增长,deptId设为主键,为什么总是报错?#1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key
怎么解决?各位
...全文
351 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
单人_旅途 2013-04-04
  • 打赏
  • 举报
回复
受用了,感谢万分
bingxinzhimeng 2012-11-20
  • 打赏
  • 举报
回复
多谢各位的回答,很是受用
开启时代 2012-11-20
  • 打赏
  • 举报
回复
引用 12 楼 rucypli 的回复:
引用 11 楼 lixzhong 的回复:数据库备份和迁移是必须要有自增ID? 不必须
多谢
rucypli 2012-11-20
  • 打赏
  • 举报
回复
引用 11 楼 lixzhong 的回复:
数据库备份和迁移是必须要有自增ID?
不必须
开启时代 2012-11-20
  • 打赏
  • 举报
回复
数据库备份和迁移是必须要有自增ID?
wwwwb 2012-11-20
  • 打赏
  • 举报
回复
不是有主键吗?可以唯一标识1条记录
bingxinzhimeng 2012-11-20
  • 打赏
  • 举报
回复
引用 8 楼 iihero 的回复:
引用 6 楼 bingxinzhimeng 的回复: 楼主,您建表一般是这样建吗?一个表总一个自增id,再加上一个主键 …… 有一个主键就行了。不一定非要有自增ID啊。话说,要那个ID还多了一层维护的麻烦。
如果没有自增id,那您在做数据库的备份、迁移的时候怎么办呢?
iihero_ 2012-11-20
  • 打赏
  • 举报
回复
引用 6 楼 bingxinzhimeng 的回复:
楼主,您建表一般是这样建吗?一个表总一个自增id,再加上一个主键 ……
有一个主键就行了。不一定非要有自增ID啊。话说,要那个ID还多了一层维护的麻烦。
wwwwb 2012-11-20
  • 打赏
  • 举报
回复
表要有主键,自增不一定要有
bingxinzhimeng 2012-11-20
  • 打赏
  • 举报
回复
引用 5 楼 iihero 的回复:
引用 3 楼 bingxinzhimeng 的回复: 引用 2 楼 iihero 的回复:楼主如果实在想那样,用下边的建表语句吧: mysql> create table dep(id int auto_increment unique, deptid int primary key, deptname varchar(128) not null); Query OK, 0 rows af……
楼主,您建表一般是这样建吗?一个表总一个自增id,再加上一个主键
iihero_ 2012-11-20
  • 打赏
  • 举报
回复
引用 3 楼 bingxinzhimeng 的回复:
引用 2 楼 iihero 的回复:楼主如果实在想那样,用下边的建表语句吧: mysql> create table dep(id int auto_increment unique, deptid int primary key, deptname varchar(128) not null); Query OK, 0 rows affected (0.05 se……
不会影响性能(查询)。只多维护了一份索引而已。
bingxinzhimeng 2012-11-20
  • 打赏
  • 举报
回复
引用 1 楼 rucypli 的回复:
为什么要有这种设计呢 正确的应该是没有id,depid是自增主键
id设为Int类型,是这个表的从1开始的自增号,而deptId是部门编号,是char型的
bingxinzhimeng 2012-11-20
  • 打赏
  • 举报
回复
引用 2 楼 iihero 的回复:
楼主如果实在想那样,用下边的建表语句吧: mysql> create table dep(id int auto_increment unique, deptid int primary key, deptname varchar(128) not null); Query OK, 0 rows affected (0.05 sec)
版主,这个问题只能这样做吗?还有别的解决办法吗?使用unique会影响数据库的性能吗?
iihero_ 2012-11-20
  • 打赏
  • 举报
回复
楼主如果实在想那样,用下边的建表语句吧: mysql> create table dep(id int auto_increment unique, deptid int primary key, deptname varchar(128) not null); Query OK, 0 rows affected (0.05 sec)
rucypli 2012-11-19
  • 打赏
  • 举报
回复
为什么要有这种设计呢 正确的应该是没有id,depid是自增主键

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧