我想知道如果我能做到這一點沒有觸發器:的MySQL創建一個整數列自動更新來增加值
我想有一個列INT
其中是自動更新的遞增整數值。
這與TIMESTAMP
或DATETIME
列中的ON UPDATE CURRENT_TIMESTAMP
列相似但不相同。
我在文檔中讀取ON UPDATE
是不可能的,因爲除非列是TIMESTAMP
,否則我只能使用文字值。
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;
你的意思自動更新增量值?你能向我們展示一個例子嗎? –
[SQL自動遞增日期時間]的可能重複(https://stackoverflow.com/questions/21450914/sql-auto-increment-by-datetime) –
我已經添加了一個例子,並強調了幾點讓它明白爲什麼這不是一個騙局。如果你可以拿走愚蠢的旗幟,將不勝感激。 – Adam