我正在尝试在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示例的链接。
希望此信息对您有所帮助。
问题内容: 我目前正在为一家餐馆开发门户应用程序。使用的后端数据库是Mysql,而我正在使用Spring JDBC支持来编写数据访问逻辑。 我的某些DAO充满了多个查询,并且正获得多达数千行的代码。我认为我可以通过将一些逻辑移到SQL- PSM过程中来减少大小和复杂性(因为Java中的数据绑定和粘合代码是令人讨厌的事情)。 但是,我对Db没有DDL权限,因此无法创建该过程。 我想知道是否有一种方法
问题内容: 在课堂上,我们都是“学习”数据库,每个人都在使用Access。厌倦了这一点,我试图做该类其余部分的工作,但是要使用MySQL的原始SQL命令而不是使用Access。 我已经设法创建数据库和表,但是现在如何在两个表之间建立关系? 如果我有两个这样的表: 和 如何在两个表之间创建“关系”?我希望为每个帐户“分配”一个customer_id(以指示谁拥有它)。 问题答案: 如果表是innod
问题内容: 我正在将MS Access应用程序(已将表链接到MSSQL Server)迁移到MySQL。 作为克服某些MSAccess表命名问题的方法,我正在寻找一种解决方案以添加一个MySQL表别名,该别名将指向MySQL数据库中的现有表。理想情况下,我想在mysql中创建别名“ dbo_customers”,该别名也指向mysql中的customers表。 需要明确的是,我 不 希望别名这样的
问题内容: 我有一个如下表: 现在我想更改此表以具有新字段,并且该字段必须具有默认值 如下所示: 怎么做? 谢谢你的帮助 问题答案: 根据MySQL 文档(添加了重点),您不能使用默认值的表达式: 10.1.4。数据类型默认值 数据类型规范中的DEFAULT value子句指示列的默认值。除一个例外, 默认值必须为常量; 它不能是函数或表达式 。例如,这意味着您不能将日期列的默认值设置为诸如NOW
问题内容: 我想创建一个上下文增量,不确定我使用的术语是否正确。这是我的桌子 在这之后我做了 在MyISAM注意页面上给出的示例中,他们没有提供示例,该示例使用enum,这里我没有使用enum,但是他们没有提到它仅适用于enum。但是我得到的输出是 但我想这样 有人可以告诉我我在做什么错吗? 问题答案: 您必须交换索引的顺序: 我从手册中引用: 对于MyISAM表,可以 在多列索引的 第二 列上指
我想用PHP在MySQL数据库中创建一个表。这是我的尝试: 但这给了我一个错误 我搜索了很多,但没有找到成功的解决方案。有人有主意吗?