【发布时间】:2015-06-09 23:34:19
【问题描述】:
我有一台运行旧 MySQL 版本 (5.5.41) 的服务器,支持以下功能:
create table mytest33
(
topicnum mediumint,
postnum mediumint auto_increment,
primary key (topicnum,postnum)
);
所以当我在这个表中插入值时,它会是这样的:
Topicnum Postnum
1 1
1 2
2 1
等等。因此,如果 topicnum 不同,则 postnum 值将返回 1。
这不再受支持 - 当我尝试在 MySQL 版本 5.6.17 中创建同一个表时,我收到一个错误:
ERROR 1075 (42000):表定义不正确;只能有一个自动列,并且必须将其定义为键。
我正在使用 MyISAM 引擎。
我该如何解决这个问题?
【问题讨论】:
-
创建表 mytest33(topicnum mediumint, postnum mediumint, 主键 (topicnum,postnum));试试这个效果很好。
-
您的原始版本是否有保持顺序的触发器?我不知道 MySQL 曾经直接支持此功能。
-
salil:确定可行,但它不包括 auto_increment..
-
戈登 - 没有设置触发器或其他任何东西,没有。我发布的查询最初在旧版本的 MySQL 中运行良好,例如 5.5.41。