像MyIsam一样在InnoDB中创建AI

时间:2017-09-28 14:58:59

标签: mysql primary-key auto-increment

示例我有表:

CREATE TABLE animals (
    grp ENUM('fish','mammal','bird') NOT NULL,
    id MEDIUMINT NOT NULL AUTO_INCREMENT,
    name CHAR(30) NOT NULL,
    PRIMARY KEY (grp,id)
) ENGINE=MyISAM;

如果我这样插入:

NSERT INTO animals (grp,name) VALUES
    ('mammal','dog'),('mammal','cat'),
    ('bird','penguin'),('fish','lax'),('mammal','whale'),
    ('bird','ostrich');

比回报:

+--------+----+---------+
| grp    | id | name    |
+--------+----+---------+
| fish   |  1 | lax     |
| mammal |  1 | dog     |
| mammal |  2 | cat     |
| mammal |  3 | whale   |
| bird   |  1 | penguin |
| bird   |  2 | ostrich |
+--------+----+---------+

但这只是为了MyIsam,为什么我们不能用于InnoDB?,如何在InnoDB中创建它,我想我们可以使用BEFORE INSERT获取新ID,如果我的用户超过1000个用户,我不知道这项工作,我的观点是:

  1. 用户插入
  2. 在插入之前,我检查了LAST Primary
  3. IF Null然后我设置1,否则NEW.ID + 1
  4. 最后,插入!。
  5. 我已完成此基准测试,但结果并不令人满意。会工作,但有些客户得到我的方法错误,有没有其他方式/如何? 感谢Advance!

0 个答案:

没有答案