MySQL:如何通过脚本创建具有自动递增列的 table

MySQL: How to create table with auto incrementing column via script

我是 MySQL 的新手,希望有人能帮助我。

我想创建一个带有两个特殊设置的简单 table:

  1. 一个两列主键,包括列“de”和“location
  2. 生成唯一 ID 的自动递增列“tID”, 从 1
  3. 开始

我尝试了以下方法(以及其他几种方法),但这总是 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))