MySQL:如何通过脚本创建具有自动递增列的 table
MySQL: How to create table with auto incrementing column via script
我是 MySQL 的新手,希望有人能帮助我。
我想创建一个带有两个特殊设置的简单 table:
- 一个两列主键,包括列“
de
”和“location
”
- 生成唯一 ID 的自动递增列“
tID
”,
从 1 开始
我尝试了以下方法(以及其他几种方法),但这总是 returns 出现以下错误:
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
") 保留在外面,它会起作用,所以这里似乎有问题。
有人可以帮我解决这个问题吗?
非常感谢,
麦克
试试下面的查询,我想这会解决你的问题
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))
或
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)
)
在你的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))
我是 MySQL 的新手,希望有人能帮助我。
我想创建一个带有两个特殊设置的简单 table:
- 一个两列主键,包括列“
de
”和“location
” - 生成唯一 ID 的自动递增列“
tID
”, 从 1 开始
我尝试了以下方法(以及其他几种方法),但这总是 returns 出现以下错误:
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
") 保留在外面,它会起作用,所以这里似乎有问题。
有人可以帮我解决这个问题吗?
非常感谢, 麦克
试试下面的查询,我想这会解决你的问题
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))
或
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)
)
在你的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))