【问题标题】:How to do auto increment in varchar variable in mysql如何在mysql中的varchar变量中进行自动递增
【发布时间】:2019-01-03 14:42:11
【问题描述】:
 MYSQL SYNTAX 


table STUDENT
      student_id : S001,S002,S003..... SO ON

在我的学生表中,我希望 varchar 数据作为主键并自动增加该值。 请不要发表评论,例如使用 PHP、JAVA 或任何其他语言等基于服务器的语言。

我想要纯 MySQL 语法。

【问题讨论】:

  • 如果您确定前缀将始终固定为S,那么为什么不完全在您的表示层中处理呢?

标签: mysql sql


【解决方案1】:

你能让主键成为复合键吗?然后你可以让第一列有一个前缀(在这种情况下是's')和一个自动递增的值作为第二列。它们一起将成为您的主键。

CREATE TABLE Student (
id INT NOT NULL AUTO_INCREMENT,
prefix CHAR(1) NOT NULL,
PRIMARY KEY (id, prefix),
...

Here's a link to a very similar question.

——特拉维斯 W.

【讨论】:

    【解决方案2】:

    数据库设计的理念是将每个数据元素分开。每个元素都有自己的数据类型、约束和规则。那 c0002 不是一个字段,而是两个字段。与 XXXnnn 或其他类似。这是不正确的,它将严重限制您使用数据以及使用数据库功能和设施的能力。

    将其分解为两个离散的数据项: column_1 CHAR(1)

    column_2 整数

    然后在 column_2 上设置 AUTOINCREMENT

    是的,您的主键可以是 (column_1, column_2),因此您并没有失去 c0002 对您的任何意义。

    检查这个非常相似的问题和答案也被接受

    How to autoincrement a varchar

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-19
      • 1970-01-01
      • 2014-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-25
      • 2022-06-10
      相关资源
      最近更新 更多