MySql自动递增字母数字主键?

时间:2011-06-22 17:58:12

标签: mysql sql

这可能在MySql中吗?我可以使用自动递增的主键,前缀为字母,例如R1234,R1235,R1236 ......等等吗?

3 个答案:

答案 0 :(得分:10)

您可以做的是将密钥存储为两列。 char前缀和自动递增int,两者都按主键分组。

CREATE TABLE myItems (
    id INT NOT NULL AUTO_INCREMENT,
    prefix CHAR(30) NOT NULL,
    PRIMARY KEY (id, prefix),
    ...

答案 1 :(得分:3)

没有。但是对于MyIsam表,您可以创建一个多列索引并将auto_increment字段放在辅助列上,这样您就可以得到几乎相同的信息:

CREATE TABLE t1 (prefix CHAR(1) NOT NULL, id INT UNSIGNED AUTO_INCREMENT NOT NULL,  
..., PRIMARY KEY(prefix,id)) Engine = MyISAM;
INSERT INTO t1(prefix) VALUES ('a'),('a'),('b'),('b');
SELECT * FROM t1;
a  1
a  2
b  1
b  2

您可以从here获取更多详细信息 注意:它不适用于INNODB引擎

答案 2 :(得分:2)

你可以用这样的两个字段来做。但据我所知,你无法用一个领域做到这一点。

create table foo (
  code char,
  id int unsigned not null auto_increment
  primary key(id,code)
);