Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL创建一个自动更新为增量值的整数列_Mysql_Ddl - Fatal编程技术网

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可能会推出一个允许这样做的版本。但这是不可执行的。要使其可执行,它必须是一个触发器。