0
当我插入一个新行时,自动增量ID将被保存为1,2,3 .. 我需要使用触发器对其进行自定义,以便将其保存像20171,20172,20173 ..MySQL-Update插入自动增量主键到自定义值
当我插入一个新行时,自动增量ID将被保存为1,2,3 .. 我需要使用触发器对其进行自定义,以便将其保存像20171,20172,20173 ..MySQL-Update插入自动增量主键到自定义值
此触发器会执行此操作。
CREATE DEFINER=`root`@`%` TRIGGER `test_before_insert` BEFORE INSERT ON `test` FOR EACH ROW BEGIN
SET NEW.id = (
SELECT CONCAT(YEAR(CURDATE()),IFNULL(MAX(CAST(ids.id AS UNSIGNED))+1,1))
FROM (
SELECT RIGHT(t.id,LENGTH(t.id)-4) AS id
FROM test t
WHERE LEFT(t.id,4) = YEAR(CURDATE())
) ids
);
END
但是有很多理由你不愿意。随着插入行,这将会成倍地增加,并且不提供可行的排序等。
非常感谢,我会在到达办公室时尽快进行测试 –
似乎很奇怪,但确定。你想要在该系列中的第10个价值是什么,201710? –
感谢您的评论。 可以成为2017257 :) –
我想让它变得像2017 + the_old_id –