我正在尝试在 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;
我不知道它为什么喜欢这样,但如果其他人需要帮助,那么你可以去这里。:)
看看 这篇文章 。我相信它应该能帮助你得到你想要的东西。如果你的表已经存在,并且其中已经有数据,那么你得到的错误可能是由于 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 示例 的链接
我希望这些信息能有所帮助。