这可能在MySql中吗?我可以使用自动递增的主键,前缀为字母,例如R1234,R1235,R1236 ......等等吗?
答案 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)
);