【问题标题】:How to make auto-increment INSERT INTO statements?如何进行自增 INSERT INTO 语句?
【发布时间】:2014-09-06 03:06:48
【问题描述】:

我真的不知道如何很好地解释这一点。这是我将用作示例的代码段,以帮助显示我需要帮助的内容:

INSERT INTO _increment

(`user_id`, `group_id`, `alias`, `hash`, `function_id`, `value`, `notes`)

VALUES 

('262', NULL, NULL, 'john1', 'wewbsite.ca/', NULL, '0');

所以这将使用哈希“john1”创建一个新条目。不过,我需要的是让“john1”在下一个条目时自动变为“john2”。 比如,第一次运行是“john1”,第二次是“john2”,然后是“john3”,以此类推。我该怎么做?

谢谢。

【问题讨论】:

  • 这是一个困难的要求,并不完全清楚。什么,如果你要插入一个值为“jane1”的行?
  • 是否有可能有一个名称为“john1”的自动增量?如果名称由字母数字组成,SQL可以在名称后面加数字吗?
  • 使用 MyISAM 存储引擎,您可以在计算列中得到它,请参阅我在 stackoverflow.com/questions/23597482/… 中的回答。但我认为你可以先积累一些经验,然后再实施不太推荐的功能。
  • 嗯,这也很有趣。为什么不推荐?只是想知道
  • 乍一看可能很好看,但比简单的自动增量值更难使用。

标签: mysql sql syntax syntax-error auto-increment


【解决方案1】:

我看到了两种方式:

首先:如果您真的不需要这种列格式,您可能应该考虑自动递增一个数字列并将名称 (John) 和该列连接以获得该结果 (JohnX)。

第二:但是如果你真的需要在这个列中获取确切的名称,因为你的老板想要这样,你应该处理SELECT LAST(column_name) FROM table_name;,然后在你的代码中解析它以获取 id 并插入结果。但是真的不推荐。

【讨论】:

  • 有趣。我将如何连接名称?我知道如何自动增加一个数字列,所以如果我能得到名称的连接,我们就是黄金。
  • 我认为@Thomas 的意思是您按原样存储名称(仅“John”并允许重复值)以及每当您需要数据库中的数据时(例如,如果您想显示它给您的最终用户),显示该连接值。或者用这个创建一个VIEW
  • 你可以用CONCAT 来做这件事......明智地参考一个好的教程,永远不要忘记查阅手册。
  • 确切的@TengyuLiu,我不知道CONCAT的东西。我认为在你的架构的上层做这件事并不是一件大事。
猜你喜欢
  • 2011-10-19
  • 2018-08-18
  • 2011-12-04
  • 2015-02-21
  • 2019-03-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-13
相关资源
最近更新 更多