【问题标题】:Error 502 while inserting into my SQL database, no primary key插入我的 SQL 数据库时出现错误 502,没有主键
【发布时间】:2019-05-04 18:34:13
【问题描述】:

我正在为我的团队制作一个仪表板,以便获取有关我们项目的信息。在仪表板中创建新项目时,用户必须填写一个表格,其中包含项目的名称、开始日期和结束日期。但是,我在插入一个名称已存在于数据库中的项目时遇到问题,并且我无法找到解决方案,因为每个项目都有自己的索引(在 DB 中有一个自动递增的整数列),并且项目name 列不是表的主键。当使用不同的名称时,它可以完美地工作,例如如果“project summer”在 DB 中,插入“project summer”将失败(导致错误 502)但“project summer 2”不会。如何插入名称相似的新项目?

我正在使用带有 express、ajax 和 request 的 NodeJS,我的数据库使用由 PHPMyAdmin 管理的 mySQL。

编辑(2018 年 3 月 12 日):“名称”列似乎是一个表索引。如果我将列编辑为不再充当索引,会对表产生什么影响?

【问题讨论】:

  • 检查索引是否唯一。如果它是唯一的,则不允许重复

标签: javascript mysql node.js ajax


【解决方案1】:

MySQL 保留字。 MySQL 中有保留字不能用作标识符(表或列名等。)如果不使用 反引号 ( `)MySQL 版本 3.23.6 中引入了标识符的引用。如果您在 ANSI 模式下运行 MySQL,您还可以用 双引号 (") 将标识符括起来。

你可以像这样使用它:

Insert into `tablename` (`name`) VALUES ("xyz");

【讨论】:

    【解决方案2】:

    您可以发布您的架构的片段吗?如果不查看您的代码,可能很难看到您的映射是什么

    编辑:我认为 MySQL 中的“key”和“index”是同一个意思。您只能有 1 个主键,看起来您上面有一个。尝试从名称表中删除索引

    【讨论】:

    • 嗨,刚刚编辑了帖子,名称列是索引而不是主键..
    猜你喜欢
    • 2019-11-26
    • 1970-01-01
    • 2012-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-04
    • 2017-04-26
    相关资源
    最近更新 更多