我正在尝试在 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;
我不知道为什么它更喜欢这个,但如果其他人需要帮助,那么你就去吧。 :)
原文由 Ben 发布,翻译遵循 CC BY-SA 4.0 许可协议
看看 这篇文章。我相信它应该可以帮助您获得想要的东西。如果您的表已经存在,并且其中已经有数据,那么您得到的错误可能是由于 auto_increment 试图为其他记录分配一个已经存在的值。
简而言之,正如其他人在评论中已经提到的那样,在 Oracle 中考虑和处理的序列在 MySQL 中不存在。但是,您可以使用 auto_increment 来完成您想要的。
如果没有关于特定错误的更多详细信息,很难提供更具体的帮助。
更新
此链接 也有助于描述 auto_increment 的用法。设置 AUTO_INCREMENT 值似乎是一个 表选项,而不是专门指定为列属性的东西。
此外,根据上面的链接之一,您也可以通过更改表来设置自动增量起始值。
更新 2 这是一个使用自动增量的 工作 sqlfiddle 示例 的链接。
我希望这些信息有所帮助。