MYSQL SYNTAX
table STUDENT
student_id : S001,S002,S003..... SO ON
在我的学生表中,我希望将varchar数据用作主键,并自动将其值递增。 请不要发表评论,例如使用基于服务器的语言,例如PHP,JAVA或任何其他语言。
我想要纯MySQL语法。
答案 0 :(得分:0)
您可以将主键设为复合键吗?然后,您可以让第一列带有前缀(在这种情况下为'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。
答案 1 :(得分:0)
数据库设计中的想法是使每个数据元素分开。每个元素都有自己的数据类型,约束和规则。 c0002不是一个字段,而是两个。与XXXnnn相同。这是不正确的,它将严重限制您使用数据以及使用数据库功能的能力。
将其分解为两个离散的数据项: column_1 CHAR(1)
column_2 INTEGER
然后在column_2上设置AUTOINCREMENT
是的,您的主键可以是(column_1,column_2),因此您不会丢失c0002对您而言的任何含义。
检查这个非常相似的问题并接受答案
答案 2 :(得分:-1)
您必须首先将主键设置为student_id,然后才能通过更新表详细信息来设置AUTO_INCREMENT关键字,然后进行更新