我试图在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。
答案 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)
);