我想將我的id在mysql表中設置爲默認值,例如'000001'或'TodaysDate後跟000001'..並且同樣應該也是auto_incremented。 我們該如何做到這一點?在mysql id和timestamp列中設置默認值?
怎麼也不能使用「CURRENT_TIMESTAMP」這樣 在TIMESTAMP列設置默認值「2012-04-01」,當更新觸發器將起火應該與今天的日期得到更新。
如何做到這一點?
我想將我的id在mysql表中設置爲默認值,例如'000001'或'TodaysDate後跟000001'..並且同樣應該也是auto_incremented。 我們該如何做到這一點?在mysql id和timestamp列中設置默認值?
怎麼也不能使用「CURRENT_TIMESTAMP」這樣 在TIMESTAMP列設置默認值「2012-04-01」,當更新觸發器將起火應該與今天的日期得到更新。
如何做到這一點?
如果我是你,我會離開它像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)
它看起來像你回答了你自己的問題:特別是你想要一個'插入/更新'觸發器,爲您設置值。
CREATE TRIGGER my_autoinc BEFORE INSERT ON test1
FOR EACH ROW BEGIN
INSERT INTO test1 SET NEW.id_column = concat(today(), <some value>);
END;
這不是我試過的解決方案。 CREATE TRIGGER測試BEFORE插入訪問者每個行開始INSERT INTO訪問者SET NEW.id = concat(today(),0001); 錯誤: 錯誤1064(42000):您的SQL語法錯誤;檢查手冊, 對應於您的MySQL服務器版本爲正確的語法使用附近'BEGIN – DeveloperJava
我沒有得到你 你did't告訴我如何設置id值像20120601000001 – DeveloperJava
@ yatin編輯它,讓我知道 – jcho360
@ jcho360:那是什麼concat?功能或 – DeveloperJava