我正在尝试在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;
我不知道为什么它会喜欢这种方式,但是如果其他人需要帮助,那么您就可以开始了。:)
查看这篇文章。我相信它应该可以帮助您获得所需的东西。如果您的表已经存在,并且表中已经有数据,则出现的错误可能是由于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值似乎是一个表选项,而不是专门指定为列属性的值。
同样,您可以通过上面的一个链接,通过更改表来设置自动增量开始值。
更新2 这是使用自动增量的有效sqlfiddle示例的链接。 希望此信息对您有所帮助。