【问题标题】:Create table does not work创建表不起作用
【发布时间】:2023-03-06 14:40:01
【问题描述】:

我在Maria DB Server.中创建表时遇到问题

我可以在我的其他设备上成功创建表格,但对于 MYSQL(可能使用不同的代码)。

查询:

CREATE TABLE admin (
    'id' double(9999) NOT NULL auto_increment, 
    'username' VARCHAR(50) NOT NULL,
    'passcode' VARCHAR(50) NOT NULL,
    'email' VARCHAR(50) NOT NULL,
    'state' VARCHAR(50) NOT NULL,
    'points' double(9999) not null,
    PRIMARY KEY(id) 
);

查询错误:

您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以在“id” double(9999) NOT NULL auto_increment 'username' VARCHAR(50) NOT NULL, 'pa' at line 2 附近使用正确的语法

如果需要任何其他信息,请在 cmets 中询问。

谢谢

【问题讨论】:

    标签: sql mariadb create-table


    【解决方案1】:

    您在表名周围加上单引号,MariaDB 将其解释为字符串文字。相反,只需直接使用未加引号的名称:

    CREATE TABLE admin (
        id double(9999) NOT NULL auto_increment,
        username VARCHAR(50) NOT NULL,
        passcode VARCHAR(50) NOT NULL,
        email VARCHAR(50) NOT NULL,
        state VARCHAR(50) NOT NULL,
        points double(9999) not null,
        PRIMARY KEY(id)
    );
    

    如果您确实需要转义 MariaDB/MySQL 中的列名,例如因为名称有空格或者是关键字,您可以使用 backticks

    CREATE TABLE admin (
        `id` double(9999) NOT NULL auto_increment,
        `username` VARCHAR(50) NOT NULL,
        ...
    )
    

    但请注意,在列名或表名中添加空格或使用保留关键字被认为是不好的做法。

    【讨论】:

      【解决方案2】:

      您也可以将 PRIMARY KEY 放在 AUTO_INCREMENT 之后

      CREATE TABLE admin (
          'id' double(9999) NOT NULL AUTO_INCREMENT PRIMARY KEY, 
          'username' VARCHAR(50) NOT NULL,
          'passcode' VARCHAR(50) NOT NULL,
          'email' VARCHAR(50) NOT NULL,
          'state' VARCHAR(50) NOT NULL,
          'points' double(9999) not null
      
      );
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-12-29
        • 2013-05-25
        • 1970-01-01
        • 2013-11-07
        • 2014-07-25
        • 2012-09-19
        • 2020-11-30
        相关资源
        最近更新 更多