我已经完全解决了,看看..
首先,您必须获取一个示例表,其中的列将与原始表的列相同,但 column 除外project_id。
然后首先在原始表中插入一行,其中列project_id=0,其他列为空,只需像这样手动插入第一行。
然后在示例表上创建一个触发器,如下所示...
///////////////////////////////////////// ///////////////////////////////////////// ///////////////////////////////////////// ///////////////
分隔符;;
插入后创建触发器 ttry
对于每一行
开始
声明 v int;
声明 c int;
set v=(select max( project_id) from original);
如果(v=0)那么
插入original集合
project_id=concat((select concat(right(substring_index((select * from(select curdate() from trylimit 1) as a),'-','1'),2),right(substring_index((select * from(select curdate() 来自try限制 1) 作为 a),'-','2'),2)) 来自try限制 1),'-001'),
project=新的。project;
别的
set c=(select right((select max( project_id) from original)as x,3) from originallimit 1);
插入original集合
project_id=concat((select concat(right(substring_index((select * from(select curdate() from trylimit 1) as a),'-','1'),2),right(substring_index((select * from(select curdate() 从try限制 1) as a),'-','2'),2)) 从try限制 1),concat('-00',c+1)),
project=新的。project;
original从限制 1中删除;
万一;
结尾;;
///////////////////////////////////////// ///////////////////////////////////////// ///////////////////////////////////////// ///////////////
在上面的触发器中,我的示例表是try(project文本),原始表是original(project_id文本,project文本)。
在示例表上创建这样的触发器后,开始在示例表中插入行,这些行将自动插入到原始表中,project_id列中的 auto_increment 值如..1405-001,1405-002,1405-003.. .. 其中14is2014和05isMay以及其余的是使用触发器递增的 auto_incremented 值。
只需按照上述步骤,您的问题一定会得到解决。