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

标签 mysql auto-increment create-table

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

我想创建一个具有两个特殊设置的简单表格:

  1. 一个两列的主键,包括列“de”和“location
  2. 生成唯一 ID 的自动递增列“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") 保留在外面,它就会工作,所以这里似乎有问题。 有人可以帮我解决这个问题吗?

非常感谢, 迈克

最佳答案

试试下面的查询,我想这会解决你的问题

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)
    )

关于MySQL:如何通过脚本创建具有自动递增列的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30885381/

相关文章:

mysql - 在 MySQL 中使用 LIMIT 和 OFFSET 是否比返回完整记录集更便宜?

javascript - 动态 MySQL 查询以填充要在 MapBox GL-JS 中显示的 GeoJson 数据缓存

php - 需要从数据库中获取ID未知的所有记录

mysql - MYSQL如何在表的子集内自增

plugins - 尝试在H2数据库中创建表时出现Liquibase错误

mysql - 当未设置某些列时,如何使 mysql 无法插入行?

ios - 插入数据时出现sqlite错误

sql - Oracle SQL 字符自动递增

MySQL触发器增加/减少其他表中的值

mysql - 将用户信息与消息表连接起来