2017-05-30 125 views
0

當我插入一個新行時,自動增量ID將被保存爲1,2,3 .. 我需要使用觸發器對其進行自定義,以便將其保存像20171,20172,20173 ..MySQL-Update插入自動增量主鍵到自定義值

+0

似乎很奇怪,但確定。你想要在該系列中的第10個價值是什麼,201710? –

+0

感謝您的評論。 可以成爲2017257 :) –

+0

我想讓它變得像2017 + the_old_id –

回答

1

此觸發器會執行此操作。

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 

但是有很多理由你不願意。隨着插入行,這將會成倍地增加,並且不提供可行的排序等。

+0

非常感謝,我會在到達辦公室時儘快進行測試 –