【问题标题】:MySQL Identify Faulty ColumnMySQL 识别故障列
【发布时间】:2018-02-27 01:17:56
【问题描述】:

我正在 node.js

中制作应用程序

在 MySQL 表中,我有多个需要唯一的列。当我插入一个不唯一的值时,会返回错误。

  • 如何确定是哪一列出现错误?例如,我需要用户名和电子邮件列是唯一的,如果我插入现有用户名,我会收到“ER_DUP_ENTRY”错误代码。

这里的问题是我不确定如何确定是哪一列给了我错误。该错误还包含一条消息:

sqlMessage: 'Duplicate entry \'GrimReaper\' for key \'username_UNIQUE\''

当然,我可以了解如何提取消息的最后一部分(username_UNIQUE),但我想知道是否有更好的方法来实现这一点?

我需要这个的原因是为了能够向客户端发送一条消息,指出指定的用户名或电子邮件不可用。

谢谢!

【问题讨论】:

  • 另一种选择:为什么不只是在用户填写输入字段后进行测试,如果输入的数据存在与否。使用 AJAX ..
  • 最后一个值是约束失败的唯一索引的名称。如果您想在输出中使用更好的名称,请为您的索引选择更好的名称。
  • 我从来没有说过我想要更好的名字,我只是想知道是否有正确的方法来获取列的名称,而不是从这里提取它。这并不难,我只是好奇。该列也被命名为:“用户名”,我认为这对于存储“用户名”的东西来说是最好的。关于 Hamza 提到的替代方案,我宁愿不查询数据库,从 MySQL 检索错误更有效。
  • 对我来说,你是正确的。由于您识别重复列的方法简单可靠,因此请继续使用。

标签: mysql node.js database


【解决方案1】:

不,您只有错误代码和错误消息文本。 MySQL 错误中没有其他可用信息。

如果需要特定列,需要从消息文本中解析出来。

【讨论】:

    猜你喜欢
    • 2012-05-08
    • 1970-01-01
    • 2014-08-19
    • 1970-01-01
    • 2013-05-22
    • 1970-01-01
    • 2021-05-06
    • 2012-12-04
    • 1970-01-01
    相关资源
    最近更新 更多