MySQL错误:“ NUMBER”在此位置无效,应为:BIT,BOOL,BOOLEAN,DATE,TIME,ENUM

时间:2018-12-13 23:15:26

标签: mysql sql

我试图在MySQL工作台中创建一个表,将其作为常规的DDL操作而不是存储过程

CREATE TABLE Authors (
   AuthorID NUMBER GENERATED AS IDENTITY,
   FirstName VARCHAR2 (20) NOT NULL,
   LastName VARCHAR2 (30) NOT NULL,
   PRIMARY KEY (AuthorID)
);

我收到以下错误: “ NUMBER”在此位置无效,应为:BIT,BOOL,BOOLEAN,DATE,TIME,ENUM ... 我无法阅读其余内容,因为它已被剪掉

我还尝试使用VARCHAR2创建其他表,无论我在第一行中输入哪种数据类型,都会遇到相同的错误。我尝试使用VARCHAR2,CHAR等代替数字,但出现相同的错误。

我的控制台中也出现以下错误:16:36:59 CREATE TABLE作者(创建的AuthorID编号为ID,FirstName VARCHAR2(20)NOT NULL,LastName VARCHAR2(30)NOT NULL,PRIMARY KEY(AuthorID))错误代码:1064。检查与您的MySQL服务器版本相对应的手册以获取正确的语法,以便在第2行0.00049秒处在“ NUMBER GENERATED AS IDENTITY,FirstName VARCHAR2(20)NOT NULL,LastName V”附近使用

Google指出此错误指向保留字,数据丢失,键入错误的命令或过时的命令。这可能是一个过时的命令吗?这是oracle 12c作业,所以它应该是最新的。我尝试消除“生成为身份”,但仍然出现上述错误。

我用这段代码打开的文件来自我的教授,也许与我在Mysql中创建的数据库没有关联,因为我看不到两者之间的关系。

右键单击并尝试以这种方式添加表时,它将尝试将数据类型更改为int。

1 个答案:

答案 0 :(得分:3)

您正在混淆MySQL和Oracle数据库。 MySQL中等效的create table语句为:

CREATE TABLE Authors (
   AuthorID INT AUTO_INCREMENT,
   FirstName VARCHAR(20) NOT NULL,
   LastName VARCHAR(30) NOT NULL,
   PRIMARY KEY (AuthorID)
);