2012-06-01 82 views
0

我想將我的id在mysql表中設置爲默認值,例如'000001'或'TodaysDate後跟000001'..並且同樣應該也是auto_incremented。 我們該如何做到這一點?在mysql id和timestamp列中設置默認值?

怎麼也不能使用「CURRENT_TIMESTAMP」這樣 在TIMESTAMP列設置默認值「2012-04-01」,當更新觸發器將起火應該與今天的日期得到更新。

如何做到這一點?

回答

0
  • 我想設置我的ID在MySQL表爲默認值,例如 '000001'。

如果我是你,我會離開它像ID INT,自動遞增,當使選擇我將使用LPAD函數:

mysql> select lpad('1',6,'0'); 
+-----------------+ 
| lpad('1',6,'0') | 
+-----------------+ 
| 000001   | 
+-----------------+ 
1 row in set (0.00 sec) 

關於時間戳我會告訴別人答案,因爲我在想什麼是做同樣的,使用CURRENT_TIMESTAMP和MySQL的函數轉換它要如何:

mysql> select left(now(),10); 
+----------------+ 
| left(now(),10) | 
+----------------+ 
| 2012-06-01  | 
+----------------+ 
1 row in set (0.00 sec)' 

編輯:

mysql> select concat(replace(left(now(),10),'-',''),lpad('1',6,'0')); 
+--------------------------------------------------------+ 
| concat(replace(left(now(),10),'-',''),lpad('1',6,'0')) | 
+--------------------------------------------------------+ 
| 20120601000001           | 
+--------------------------------------------------------+ 
1 row in set (0.00 sec) 
+0

我沒有得到你 你did't告訴我如何設置id值像20120601000001 – DeveloperJava

+0

@ yatin編輯它,讓我知道 – jcho360

+0

@ jcho360:那是什麼concat?功能或 – DeveloperJava

0

它看起來像你回答了你自己的問題:特別是你想要一個'插入/更新'觸發器,爲您設置值。

CREATE TRIGGER my_autoinc BEFORE INSERT ON test1
FOR EACH ROW BEGIN
INSERT INTO test1 SET NEW.id_column = concat(today(), <some value>);
END;

+0

這不是我試過的解決方案。 CREATE TRIGGER測試BEFORE插入訪問者每個行開始INSERT INTO訪問者SET NEW.id = concat(today(),0001); 錯誤: 錯誤1064(42000):您的SQL語法錯誤;檢查手冊, 對應於您的MySQL服務器版本爲正確的語法使用附近'BEGIN – DeveloperJava