8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

如何在 MySQL 中创建序列?

Kjartan 2月前

109 0

我正在尝试在 MySQL 中创建一个序列(我对 SQL 整体上非常陌生)。我正在使用以下代码,但它导致错误:CREATE SEQUENCE ORDID INCREMENT BY 1 START WITH 622;ORDID 指的是...

我正在尝试在 MySQL 中创建一个序列(我对 SQL 整体来说非常陌生)。我正在使用以下代码,但它会导致错误:

CREATE SEQUENCE ORDID INCREMENT BY 1 START WITH 622;

ORDID 指的是我正在使用的表中的一个字段。如何正确创建序列?

编辑:

据称,MySQL 不使用序列。我现在正在使用以下代码,但这也会导致错误。我该如何修复它们?

CREATE TABLE ORD (
ORDID NUMERIC(4) NOT NULL AUTO_INCREMENT START WITH 622,
//Rest of table code

编辑:

我想我找到了解决办法。对于 phpMyAdmin(我正在使用),您可以使用以下代码。

ALTER TABLE ORD AUTO_INCREMENT = 622;

我不知道它为什么喜欢这样,但如果其他人需要帮助,那么你可以去这里。:)

帖子版权声明 1、本帖标题:如何在 MySQL 中创建序列?
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由Kjartan在本站《ubuntu》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 纯粹为了记录这个奇怪的老问题,这里概述了在没有可用序列时模拟序列的标准方法。看来 MySql 没有它们,所以在这里。

    首先,确切的说……

    mysql>  CREATE TABLE `ubersequence` (
        ->  `id` int NOT NULL AUTO_INCREMENT,
        ->  `unused` varchar(32) not null unique,
        ->  PRIMARY KEY (`id`) );
    Query OK, 0 rows affected (0.05 sec)
    
    mysql> insert into ubersequence (unused) values ('snap');
    Query OK, 1 row affected (0.01 sec)
    
    mysql> select * from ubersequence ;
    +----+--------+
    | id | unused |
    +----+--------+
    |  1 | snap   |
    +----+--------+
    1 row in set (0.00 sec)
    

    每次需要下一个值时, just replace in to it ,然后读取新的 ID。

    mysql> replace into ubersequence (unused) values ('snap') ;
    Query OK, 2 rows affected (0.01 sec)
    
    mysql> select * from ubersequence ;
    +----+--------+
    | id | unused |
    +----+--------+
    |  2 | snap   |
    +----+--------+
    1 row in set (0.00 sec)
    
    mysql> replace into ubersequence (unused) values ('snap') ;
    Query OK, 2 rows affected (0.01 sec)
    
    mysql> select * from ubersequence ;
    +----+--------+
    | id | unused |
    +----+--------+
    |  3 | snap   |
    +----+--------+
    1 row in set (0.00 sec)
    

    不要重复超过二十亿次!

    请注意,当然 这两个步骤以及可能更多的步骤必须是代码中的原子事务 .

    感谢@Barmar 明确指出 MySql 没有全局序列。

返回
作者最近主题: