【问题标题】:SQL error - Incorrect table definition; there can be only one auto columnSQL 错误 - 表定义不正确;只能有一个自动列
【发布时间】:2017-02-14 21:05:50
【问题描述】:

这个 SQL 有什么问题, ->); ERROR 1075 (42000):表定义不正确;只能有一个自动列

SQL

CREATE TABLE TABLENAME12
(
TAB_ID INT NOT NULL AUTO_INCREMENT,

NAME_FIRST NVARCHAR(200),
TYPE NVARCHAR(200)

);

我正在使用mysql,我该如何解决这个问题。我正在尝试创建一个表。我得到了这个错误

【问题讨论】:

    标签: mysql sql


    【解决方案1】:

    您必须将AUTO_INCREMENT 列指定为PRIMARY KEY 尝试:

    CREATE TABLE TABLENAME12
    (
     TAB_ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
     NAME_FIRST NVARCHAR(200),
     TYPE NVARCHAR(200)
    );
    

    【讨论】:

      【解决方案2】:

      正如错误所说。

      "Incorrect table definition; there can be only one auto column and it must be 
      defined as a key" 
      

      http://sqlfiddle.com/#!2/7e064

      在 auto_increment 列上添加主键。

      CREATE TABLE TABLENAME12
      (
      TAB_ID INT NOT NULL AUTO_INCREMENT,
      NAME_FIRST NVARCHAR(200),
      TYPE NVARCHAR(200),
      PRIMARY KEY (TAB_ID)
      );
      

      【讨论】:

        【解决方案3】:

        你会得到的类似结果

        CREATE TABLE TABLENAME12
        (
          TAB_ID INT NOT NULL AUTO_INCREMENT,
          NAME_FIRST NVARCHAR(200),
          TYPE NVARCHAR(200),
          PRIMARY KEY( TAB_ID )
        );
        

        除了类型定义 int 和 nvarchar 之外,这也可用于其他 db 作为 mysql。 如果你使用 varchar 和 integer 而不是你与 postgresql 兼容。

        【讨论】:

        • 是否必须指定主键?
        • 如果文件应该是 auto_increment 那么是的。
        猜你喜欢
        • 2019-01-02
        • 2015-04-05
        • 1970-01-01
        • 2013-07-12
        • 1970-01-01
        • 1970-01-01
        • 2017-05-31
        • 2020-01-01
        • 2013-12-17
        相关资源
        最近更新 更多