当前位置: 首页 > 面试题库 >

如何在MySql中创建上下文AUTO_INCREMENT?

弓俊晖
2023-03-14
问题内容

我想创建一个上下文增量,不确定我使用的术语是否正确。这是我的桌子

CREATE TABLE IF NOT EXISTS `test` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `abc` varchar(50) NOT NULL,
  `data` varchar(100) NOT NULL,
  PRIMARY KEY (`id`,`abc`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;

在这之后我做了

INSERT INTO `test` (`abc`, `data`) VALUES
('hi', 'hello2'),
('hi2', 'hello2'),
('hi', 'hello2');

在MyISAM注意页面上给出的示例中,他们没有提供示例,该示例使用enum,这里我没有使用enum,但是他们没有提到它仅适用于enum。但是我得到的输出是

1   hi  hello2
2   hi2     hello2
3   hi  hello2

但我想这样

1   hi  hello2
1   hi2     hello2
3   hi  hello2

有人可以告诉我我在做什么错吗?


问题答案:

您必须交换索引的顺序:

CREATE TABLE IF NOT EXISTS `test` (
    `id` int(10) NOT NULL AUTO_INCREMENT,
    `abc` varchar(50) NOT NULL,
    `data` varchar(100) NOT NULL,
    PRIMARY KEY (`abc`, `id`)   -- id got to be second
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

我从手册中引用:

对于MyISAM表,可以 在多列索引的 第二 列上指定AUTO_INCREMENT 。

这个小提琴中的工作示例



 类似资料:
  • 问题内容: 在课堂上,我们都是“学习”数据库,每个人都在使用Access。厌倦了这一点,我试图做该类其余部分的工作,但是要使用MySQL的原始SQL命令而不是使用Access。 我已经设法创建数据库和表,但是现在如何在两个表之间建立关系? 如果我有两个这样的表: 和 如何在两个表之间创建“关系”?我希望为每个帐户“分配”一个customer_id(以指示谁拥有它)。 问题答案: 如果表是innod

  • 问题内容: 我正在尝试在MySQL中创建序列(从整体上来说,我对SQL还是很新的)。我正在使用以下代码,但这会导致错误: ORDID指向我正在使用的表中的字段。如何正确创建序列? 编辑: 据称,MySQL不使用序列。我现在正在使用以下代码,但这也会引起错误。我该如何解决? 编辑: 我想我找到了解决方法。对于phpMyAdmin(我正在使用),您可以使用以下代码。 我不知道为什么它会喜欢这种方式,但

  • 问题内容: 我想在没有X的情况下使用OpenGL渲染,而在Google上我找到了它:http : //dvdhrm.wordpress.com/2012/08/11/kmscon-linux-kmsdrm-based-virtual- console/ 那里说有可能。我应该使用DRM和EGL。EGL可以创建opengl上下文,但需要一个NativeWindow。DRM可能会为我提供NativeWi

  • 问题内容: 我当前正在通过右键单击实例化并将其位置设置为鼠标位置的位置来创建右键单击上下文菜单。是否有更好的方法? 问题答案: 您可能正在手动调用菜单。这会导致菜单中出现一些令人讨厌的越野车行为。 该方法处理所有需要发生的事情(在鼠标悬停时突出显示事情,并在必要时关闭弹出窗口),其中使用只是显示菜单而无需添加任何其他行为。 要进行右键单击弹出菜单,只需创建一个。 然后,您所要做的就是向要弹出菜单的

  • 问题内容: 我正在将MS Access应用程序(已将表链接到MSSQL Server)迁移到MySQL。 作为克服某些MSAccess表命名问题的方法,我正在寻找一种解决方案以添加一个MySQL表别名,该别名将指向MySQL数据库中的现有表。理想情况下,我想在mysql中创建别名“ dbo_customers”,该别名也指向mysql中的customers表。 需要明确的是,我 不 希望别名这样的

  • 问题内容: 我不会在MySQL上创建新的数据类型。查询如下 我如何在MySQL上做到这一点 问题答案: 你不能。MySQL没有用户定义的类型。(至少不是当前版本。)