MySQL不会允许VARCHAR作为主键吗?

时间:2011-11-23 20:15:15

标签: mysql sql primary-key unique unique-constraint

我正在尝试创建一个名为Students的表,只有一个字段student_name。

student_name应该是VARCHAR和主键,因为我想通过他们的名字唯一地标识学生。

CREATE TABLE 'swinters'.'Students' (
  'student_name' VARCHAR NOT NULL,
  PRIMARY KEY ('student_name')
)
ENGINE = InnoDB;

MYSQL Error Number 1064

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'NOT NULL, PRIMARY KEY ('student_name') ) ENGINE = InnoDB' at line 2.

4 个答案:

答案 0 :(得分:9)

您需要指定VARCHAR(N),其中N是最大字符串长度

答案 1 :(得分:6)

您需要提供VARCHAR列的长度。即VARCHAR(255)

答案 2 :(得分:4)

mySQL 喜欢你,并试图鼓励你做正确的事;)

不要打正确的事。有两个领域。

在名称字段上使用UNIQUE。

使用主键就是这样。称之为idstudent_id

您可以在此处看到更多信息:
https://stackoverflow.com/questions/8232943/why-should-i-create-an-id-column-when-i-can-use-others-as-key-fields/8235024#8235024

答案 3 :(得分:2)

您必须指定字段将采用的字符数VARCHAR(255)