MySQL创建一个自动更新为增量值的整数列
我想知道我是否可以在没有触发的情况下做到这一点:MySQL创建一个自动更新为增量值的整数列,mysql,ddl,Mysql,Ddl,我想知道我是否可以在没有触发的情况下做到这一点: CREATE TRIGGER trg_data_update BEFORE UPDATE ON myTable FOR EACH ROW SET NEW.special_col = OLD.special_col + 1; 我想要一个INT列,它会自动更新以增加整数值 这与时间戳或日期时间列上更新当前时间戳时的类似,但不同 我在文档中读到更新时不可能使用,因为我只能使用文字值,除非列是时间戳 我能做点别的事而不是扳机吗 [更新1]
CREATE TRIGGER trg_data_update BEFORE UPDATE ON myTable
FOR EACH ROW SET NEW.special_col = OLD.special_col + 1;
我想要一个INT
列,它会自动更新以增加整数值
这与时间戳
或日期时间
列上更新当前时间戳时的类似,但不同
我在文档中读到更新时不可能使用
,因为我只能使用文字值,除非列是时间戳
我能做点别的事而不是扳机吗
[更新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;
根据,在更新中的特殊列中添加一个
什么是自动更新增量值?你能给我们举个例子吗?可能的重复我已经添加了一个例子,并强调了几点,以明确为什么这不是重复。如果你能取消dupe标志,我将不胜感激。你不能,你需要一个触发器。将来某一天,mySQL可能会推出一个允许这样做的版本。但这是不可执行的。要使其可执行,它必须是一个触发器。