我是MySQL的新手,希望有人可以帮助我。
我想创建一个包含两个特殊设置的简单表:
de
”和“location
”tID
”
从1开始我尝试了以下(和其他几种方法),但这总是返回以下错误:
SQL:
CREATE TABLE TranslationsMain (
de VARCHAR(100) NOT NULL,
tID INT UNSIGNED NOT NULL AUTO_INCREMENT,
location VARCHAR(50) NOT NULL,
classes VARCHAR(100) NOT NULL,
info VARCHAR(100) NOT NULL,
sortOrder INT NOT NULL,
en VARCHAR(100) NOT NULL,
PRIMARY KEY(de, location)
)
错误消息:
"Incorrect table definition; there can be only one auto column and it must be defined as a key."
如果我离开自动递增列(“tID
”),它会起作用,所以这里似乎有问题。
有人可以帮我这个吗?
非常感谢, 麦克
答案 0 :(得分:3)
尝试以下查询,我认为这将解决您的问题
CREATE TABLE TranslationsMain (
de VARCHAR(100) NOT NULL,
tID INT UNSIGNED NOT NULL AUTO_INCREMENT,
location VARCHAR(50) NOT NULL,
classes VARCHAR(100) NOT NULL,
info VARCHAR(100) NOT NULL,
sortOrder INT NOT NULL,
en VARCHAR(100) NOT NULL,
PRIMARY KEY(tID),
UNIQUE(de, location))
OR
CREATE TABLE TranslationsMain12 (
de VARCHAR(100) NOT NULL,
tID INT UNSIGNED NOT NULL AUTO_INCREMENT,
location VARCHAR(50) NOT NULL,
classes VARCHAR(100) NOT NULL,
info VARCHAR(100) NOT NULL,
sortOrder INT NOT NULL,
en VARCHAR(100) NOT NULL,
unique(tID),
primary key(de,location)
)
答案 1 :(得分:1)
在你的SQL中,自动增量的问题必须是主键。否则它将无法工作。
您可以使用这些。我认为你的问题会解决。
CREATE TABLE TranslationsMain (
de VARCHAR(100) NOT NULL,
tID INT UNSIGNED NOT NULL AUTO_INCREMENT,
location VARCHAR(50) NOT NULL,
classes VARCHAR(100) NOT NULL,
info VARCHAR(100) NOT NULL,
sortOrder INT NOT NULL,
en VARCHAR(100) NOT NULL,
PRIMARY KEY(tID,de, location))