我想让我的自动增量列在插入时按3步递增。
我可以做这样的事:
Alter table `mytable` auto_increment = (select max(id) from mytable) + 3;在扳机里?
我知道MySQL有一个AUTO_INCREMENT_INCREMENT设置,但是由于我在共享服务器上,所以不能更改它。
发布于 2014-06-26 06:04:00
在MySQL中,您可以直接插入AUTO_INCREMENT列。因此,以MySQL手册中的示例为例:
CREATE TABLE animals (
id MEDIUMINT NOT NULL AUTO_INCREMENT,
name CHAR(30) NOT NULL,
PRIMARY KEY (id)
) ENGINE=MyISAM;
INSERT INTO animals (name) VALUES
('dog'),('cat'),('penguin'),
('lax'),('whale'),('ostrich');
SELECT * FROM animals;返回:
+----+---------+
| id | name |
+----+---------+
| 1 | dog |
| 2 | cat |
| 3 | penguin |
| 4 | lax |
| 5 | whale |
| 6 | ostrich |
+----+---------+让我们试试这个:
TRUNCATE TABLE animals;
CREATE TRIGGER increment_insert BEFORE INSERT ON animals
FOR EACH ROW
SET NEW.id = (SELECT MAX(id) + 2 FROM animals);
INSERT INTO animals (name) VALUES
('dog'),('cat'),('penguin'),
('lax'),('whale'),('ostrich');
SELECT * FROM animals;返回:
| ID | NAME |
|----|---------|
| 1 | dog |
| 3 | cat |
| 5 | penguin |
| 7 | lax |
| 9 | whale |
| 11 | ostrich |(顺便说一句,这不是第三步,而是你想要的第二步)
https://dba.stackexchange.com/questions/69073
复制相似问题