MySQL InnoDB 基于其他列的组合自增列

MySQL InnoDB auto increment column based on combination of other columns

我正在制作一个系统,用户可以在其中上传他们想要的任何文件,而不用它来执行任何类型的代码。作为其中的一部分,我重命名了每个文件,并将其原始名称存储在 MySQL table 中。此 table 包含上传用户的 ID,以及上传的唯一 ID。目前我是这样做的:

CREATE TABLE `uploads` (
    `user_id` INT(11) NOT NULL,
    `upload_id` INT(11) NOT NULL AUTO_INCREMENT,
    `original_name` VARCHAR(30) NOT NULL,
    `mime_type` VARCHAR(30) NOT NULL,
    `name` VARCHAR(50) NOT NULL,
    PRIMARY KEY (`user_id`, `upload_id`)
) ENGINE=MyISAM;

这意味着我将始终拥有 user_id 和 upload_id 的唯一组合,并且每个用户首​​次上传的 ID 都是 1。但是我听说 MyISAM 很旧,我宁愿使用创新数据库。 有什么办法可以在 InnoDB 中实现这一点?

MyISAM 表的最大问题是它们不是事务性的。根据您的说法,您只会创建记录然后读取它们(可能稍后删除它们)但很少或根本没有编辑。这种情况正是 MyISAM 的设计目标,它对大多数只读记录来说速度很快。我个人认为转换为 InnoDB 没有任何优势。