我想知道如果我能做到这一点没有触发器:的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