2017-08-23 77 views
-1

我想知道如果我能做到這一點沒有觸發器:的MySQL創建一個整數列自動更新來增加值

我想有一個INT其中是自動更新的遞增整數值。

這與TIMESTAMPDATETIME列中的ON UPDATE CURRENT_TIMESTAMP列相似但不相同。

我在文檔中讀取ON UPDATE是不可能的,因爲除非列是TIMESTAMP,否則我只能使用文字值。

MySQL default and on update

MySQL timestamp initialization

我可以做別的事情,而不是一個觸發的?

[更新1]

這個例子是我想要實現:

CREATE TABLE myTable (
    stuff VARCHAR (100), 
    special_col INT DEFAULT 123456789 
); 

INSERT INTO myTable (stuff) VALUES ('something or other'); 

SELECT * FROM myTable; 

stuff     | special_col 
---------------------------------------------------- 
something or other | 123456789 

UPDATE myTable SET stuff = 'new info'; 

SELECT * FROM myTable; 

stuff     | special_col 
---------------------------------------------------- 
new info    | 123456790 

由列增量不具有的值是1。它只是比以前更高。

[更新2]

我想可能有一些很酷的MySQL語法,我可以使用 - 它確實如此多的非ANSI SQL,我想有可能是做這件事的定製方式。

反正,我已經放棄了,我實現一個觸發器:

CREATE TRIGGER trg_data_update BEFORE UPDATE ON myTable 
    FOR EACH ROW SET NEW.special_col = OLD.special_col + 1; 
+0

你的意思自動更新增量值?你能向我們展示一個例子嗎? –

+0

[SQL自動遞增日期時間]的可能重複(https://stackoverflow.com/questions/21450914/sql-auto-increment-by-datetime) –

+1

我已經添加了一個例子,並強調了幾點讓它明白爲什麼這不是一個騙局。如果你可以拿走愚蠢的旗幟,將不勝感激。 – Adam

回答