我正在使用VARCHAR作为我的主键。我想自动递增它(基地62,小写/大写,数字),但是,下面的代码失败(原因很明显):MySQL - 如何使用VARCHAR作为AUTO INCREMENT主键
CREATE TABLE IF NOT EXISTS `campaign` (
`account_id` BIGINT(20) NOT NULL,
`type` SMALLINT(5) NOT NULL,
`id` VARCHAR(16) NOT NULL AUTO_INCREMENT PRIMARY KEY
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
然而,这个工程:
CREATE TABLE IF NOT EXISTS `campaign` (
`account_id` BIGINT(20) NOT NULL,
`type` SMALLINT(5) NOT NULL,
`id` VARCHAR(16) NOT NULL PRIMARY KEY
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
什么跟踪自己的id增加的最好方法是什么? (由于auto_increment不起作用)。我是否需要制作另一张包含当前ID迭代的表格?还是有更好的方法来做到这一点?
编辑:我想澄清一点,我知道使用INT是一个auto_increment主键是合乎逻辑的路要走。这个问题是为了回应我之前看到的一些对话。由于
Offtopic:你确定要使用MyISAM吗?对于关系数据库,您需要在MySQL中使用innoDB来创建外键。 – 2010-08-11 06:36:56
不,我不确定。我一直在使用MySQL已经有一段时间了,但是,有人告诉我应该在大部分时间使用MyISAM,并且我只是用它来做:P – 2010-08-11 12:20:31