MySQL 创建一个自动更新以增加值的整数列

MySQL create an integer column that auto-updates to increment value

我想知道我是否可以在没有触发器的情况下执行此操作:

我想要一个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;

根据 docs

向更新中的 special_col 添加一个
UPDATE myTable SET stuff = 'new info', special_col=special_col+1;