【发布时间】:2011-12-28 07:24:34
【问题描述】:
我是一名大学生,需要使用 Oracle 的 iSQL* Plus 提交课程作业。
我正在尝试使用以下 SQL 语句创建一个表:
CREATE TABLE Category
( `id` INT(11) NOT NULL AUTO_INCREMENT ,
`title` VARCHAR (45) NULL ,
PRIMARY KEY (`id`) );
这会导致以下消息:
ORA-00911: 无效字符
它指的是勾号`符号。所以我尝试了以下方法,改用单引号:
CREATE TABLE Category
( 'id' INT(11) NOT NULL AUTO_INCREMENT ,
'title' VARCHAR (45) NULL ,
PRIMARY KEY ('id') );
错误:
ORA-00904: : 无效标识符
所以再试一次“ - 错误:
( "id" INT(11) NOT NULL AUTO_INCREMENT ,
*
ORA-00907: 缺少右括号
如果我删除 INT 后面的 (11),它将抱怨 AUTO_INCREMENT 属性。
CREATE TABLE Category
( "id" INT NOT NULL AUTO_INCREMENT ,
"title" VARCHAR (45) NULL ,
PRIMARY KEY ("id") );
我认为 SQL 就是 SQL,在这些非常基本的级别上并没有真正的区别。我认为事情在更深层次上变得不同了?
- 我如何让我的声明发挥作用?
- 对于熟悉 MySQL 的人学习 Oracle,您有什么建议?
【问题讨论】:
-
Richard:您遇到了两种产品之间的差异以及它们在 SQL 语言标准上的不同扩展。是的,它们都支持 ANSI SQL,但是当您接近自动增量时,您会变得更深入。
-
感谢 p.campbell 的评论。我想我应该开始阅读 Oracle 的 SQL 基础知识