一尘不染

如何在MySQL中创建序列?

mysql

我正在尝试在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;

我不知道为什么它会喜欢这种方式,但是如果其他人需要帮助,那么您就可以开始了。:)


阅读 733

收藏
2020-05-17

共1个答案

一尘不染

查看这篇文章。我相信它应该可以帮助您获得所需的东西。如果您的表已经存在,并且表中已经有数据,则出现的错误可能是由于auto_increment试图为其他记录分配一个已经存在的值。

简而言之,正如其他人在评论中已经提到的那样,在Oracle中考虑和处理的序列在MySQL中不存在。但是,您可能可以使用auto_increment完成所需的操作。

如果没有有关特定错误的其他详细信息,很难提供更具体的帮助。

更新

CREATE TABLE ORD (
  ORDID INT NOT NULL AUTO_INCREMENT,
  //Rest of table code
  PRIMARY KEY (ordid)
)
AUTO_INCREMENT = 622;

该链接对于描述auto_increment的用法也很有帮助。设置AUTO_INCREMENT值似乎是一个表选项,而不是专门指定为列属性的值。

同样,您可以通过上面的一个链接,通过更改表来设置自动增量开始值。

ALTER TABLE ORD AUTO_INCREMENT = 622;

更新2 这是使用自动增量的有效sqlfiddle示例的链接。
希望此信息对您有所帮助。

2020-05-17