我想弄清楚如何用3列做一个表:
unique_id, type, version
其中unique_id为每条记录的AUTO_INCREMENT,每种类型的版本为AUTO_INCREMENT。
目的是,当我插入时,我只需指定'type',并自动生成unique_id和version_id。例如:
insert type 'a', then values are: 1 , a , 1
insert type 'a', then values are: 2 , a , 2
insert type 'a', then values are: 3 , a , 3
insert type 'b', then values are: 4 , b , 1
insert type 'b', then values are: 5 , b , 2
insert type 'a', then values are: 6 , a , 4
也可以说这样的设置没有真正规范化吗?相反它应该是两个表?
答案 0 :(得分:1)
您不能为每种类型生成自动生成的序列,但您可以生成自己的序列。
insert into the_table (type, version)
select 'a', 1 + IFNULL(max(version), 0)
from the_table
where type = 'a';
答案 1 :(得分:0)
如果表格中有很多行(并且取决于您要做的事情),那么最好为每个版本分别创建表格。然后,将每种类型插入到正确的版本表中。