Mysql 将主键/序列创建为Varchar

Mysql 将主键/序列创建为Varchar,mysql,sequence,Mysql,Sequence,我在一个现有的大项目中有一个现有的表。此表有一个定义为VARCHAR的主键(不能轻松更改为int) 现在我必须为这个表创建新的条目,并自动创建新的主键 第一个糟糕的想法是尝试在这个Varchar字段上使用autoincrement。当然,这是失败的。 我的第二个想法是创建一个自己的int序列,并创建该序列的键(例如“XXX”+“000001”)。但MySQL中没有序列:( 那我该怎么办?有什么解决办法吗 干杯 克里斯首先——我建议你想想——什么更难:维持这样的“解决方案”(我指的是与varcha

我在一个现有的大项目中有一个现有的表。此表有一个定义为VARCHAR的主键(不能轻松更改为int)

现在我必须为这个表创建新的条目,并自动创建新的主键

第一个糟糕的想法是尝试在这个Varchar字段上使用autoincrement。当然,这是失败的。 我的第二个想法是创建一个自己的int序列,并创建该序列的键(例如“XXX”+“000001”)。但MySQL中没有序列:(

那我该怎么办?有什么解决办法吗

干杯


克里斯

首先——我建议你想想——什么更难:维持这样的“解决方案”(我指的是与varchar合作的奇迹)或者将列更改为整数。还有,是什么阻止您将新的整数列声明为自动增量?好的,我的意思是“不能轻易更改为整数”是它不能轻易更改为整数。这就是我发布此问题的原因。然后解释什么限制应适合该“解决方案”我的想法是用一个固定的、不带字符的varchar前缀(有很多前缀,例如“AAA”)加上一个连续的、格式化的数字,然后转换成varchar,例如“00000001”)来创建我自己的密钥。就并发连接而言,这一切都很糟糕。在这种情况下,您将无法模拟正确的工作(因此,您将面临两个记录具有相同键值的风险,并产生所有后果)