mysql - 为什么 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
有人能帮我吗?
解决方案
您似乎在 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
无论如何你可能想要这里
推荐阅读
- python - 尝试创建一个函数来搜索字符串中的单词
- ios - geocodeAddressString(String:) 上的 iOS 完成处理程序不执行语句
- firebase - 尝试更新flutter firebase中的数据时出错 - 未处理的异常:无效参数:'TextEditingController'的实例
- linux - USB 音频输入设备未列为“arecord -l”下的输入设备
- node.js - 如何从 Node.js 中的 JSON 文件中检索特定数据集?
- android - 所有代码均未在 SkuDetailsResponseListener 内执行
- json - JSON 中不可读的文本
- python - 当我要求它只接受整数和浮点数时,为什么我在 python 中的验证尝试接受字母?
- html - 移动设备上出现错误的响应式导航
- php - 如何使用 smarty 或 php 从 jquery 发布请求中读取数据