MYSQL SYNTAX table STUDENT student_id : S001,S002,S003..... SO ON
在student表中,我希望varchar数据作为主键,并自动递增该值。请不要评论像使用服务器的基础语言,如php,java或任何其他语言。我想要纯mysql语法。
qnzebej01#
数据库设计的思想是使每个数据元素保持独立。每个元素都有自己的数据类型、约束和规则。c0002不是一个字段,而是两个字段。和nnn一样。这是不正确的,它将严重限制您使用数据、使用数据库功能和设施的能力。把它分成两个离散的数据项:列1 char(1)列2整数然后在列2上设置自动递增是的,您的主键可以是(第1列,第2列),所以您没有失去c0002对您的任何意义。检查这个非常相似的问题和答案也被接受如何自动递增varchar
dz6r00yl2#
你能把主键改成复合键吗?然后第一列可以有一个前缀(在本例中是“s”),第二列可以有一个自动递增的值。它们一起将是你的主键。
CREATE TABLE Student ( id INT NOT NULL AUTO_INCREMENT, prefix CHAR(1) NOT NULL, PRIMARY KEY (id, prefix), ...
下面是一个非常类似的问题的链接。-特拉维斯w。
2条答案
按热度按时间qnzebej01#
数据库设计的思想是使每个数据元素保持独立。每个元素都有自己的数据类型、约束和规则。c0002不是一个字段,而是两个字段。和nnn一样。这是不正确的,它将严重限制您使用数据、使用数据库功能和设施的能力。
把它分成两个离散的数据项:列1 char(1)
列2整数
然后在列2上设置自动递增
是的,您的主键可以是(第1列,第2列),所以您没有失去c0002对您的任何意义。
检查这个非常相似的问题和答案也被接受
如何自动递增varchar
dz6r00yl2#
你能把主键改成复合键吗?然后第一列可以有一个前缀(在本例中是“s”),第二列可以有一个自动递增的值。它们一起将是你的主键。
下面是一个非常类似的问题的链接。
-特拉维斯w。