[英]MySQL InnoDB auto increment column based on combination of other columns
我正在建立一个系统,用户可以在其中上传所需的任何文件,而不用它执行任何类型的代码。 作为其一部分,我重命名了每个文件,并将其原始名称存储在MySQL表中。 该表包含上载用户的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。 有什么方法可以在InnoDB中实现?
MyISAM表的最大问题是它们不是事务性的。 用您所说的话,您只会创建记录,然后读取它们(可能以后再删除它们),但是几乎没有编辑或没有编辑。 这种情况就是MyISAM所设计的,它对于大多数只读记录来说是快速的。 我个人认为转换为InnoDB没有任何好处。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.