首页 > 解决方案 > 为什么 MariaDB 拒绝创建一个错误 [42000][1064] 的简单表?

问题描述

我只想知道如何解决这个问题,或者为什么 MariaDB 服务器让我一直返回错误。我只是安装数据库,创建一个用户,一个新模式,我指向那个数据库,use database testing;我准备用这个查询在数据库上创建一个简单的表:

CREATE TABLE USERS
(
    ID          NUMBER(4)    NOT NULL PRIMARY KEY,
    NAME        VARCHAR2(20) NOT NULL,
    DEPTO       VARCHAR2(20) NOT NULL
);

我正在使用的数据库中的用户已授予所有权限。但 MariaDB 返回:

[42000][1064] (conn=14) You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'NUMBER(4) NOT NULL PRIMARY KEY
[42000][1064] You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'NUMBER(4) NOT NULL PRIMARY KEY
)' at line 2
Query is: CREATE TABLE USERS (
ID NUMBER(4) NOT NULL PRIMARY KEY
)
java thread: RMI TCP Connection(5)-127.0.0.1

有人能帮我吗?

标签: mysqlsqlmariadbcreate-table

解决方案


您似乎在 MySQL 数据库中使用 Oracle 语法。需要进行一些调整:

CREATE TABLE USERS (
    ID          INT    NOT NULL PRIMARY KEY,
    NAME        VARCHAR(20) NOT NULL,
    DEPTO       VARCHAR(20) NOT NULL
);

即:

  • VARCHAR2(n)特定于 Oracle;MySQL(和大多数其他数据库)有VARCHAR(n)

  • MySQL 中也没有NUMBER(n)数据类型;有NUMERIC(n, m),它是一个定点数,但INT无论如何你可能想要这里


推荐阅读