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

如何在 MySQL 中创建序列?

Kjartan 2月前

120 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 手册建议的 解决方案 :

    如果 expr 作为 LAST_INSERT_ID() 的参数给出,则该函数将返回该参数的值,并将其记住为 LAST_INSERT_ID() 要返回的下一个值。这可用于模拟序列:

    创建一个表来保存序列计数器并初始化它:

        mysql> CREATE TABLE sequence (id INT NOT NULL);
        mysql> INSERT INTO sequence VALUES (0);
    

    使用该表生成如下序列号:

        mysql> UPDATE sequence SET id=LAST_INSERT_ID(id+1);
        mysql> SELECT LAST_INSERT_ID();
    

    UPDATE 语句增加序列计数器并导致下次调用 LAST_INSERT_ID() 返回更新的值。SELECT 语句检索该值。mysql_insert_id() C API 函数也可用于获取该值。请参见第 23.8.7.37 节“mysql_insert_id()”。

    无需调用 LAST_INSERT_ID() 即可生成序列,但这样使用该函数的好处是,ID 值在服务器中作为最后自动生成的值保留。它对多用户安全,因为多个客户端可以发出 UPDATE 语句并使用 SELECT 语句(或 mysql_insert_id())获取自己的序列值,而不会影响或受生成自己序列值的其他客户端的影响。

返回
作者最近主题: