当前位置: 首页 > 知识库问答 >
问题:

在Oracle中创建表会产生“缺少右括号”错误[重复]

黄俊誉
2023-03-14

我正在尝试创建一个表,但不断收到以下错误消息警告:oci\u execute():ORA-00907:中缺少右括号。。。第14行

以下是处理此问题的代码:

$stid = oci_parse($conn, 'CREATE TABLE tags (
                            id INT NOT NULL auto_increment, 
                            PRIMARY KEY(id), 
                            name VARCHAR2(64) NOT NULL)') 
        or die(oci_error($conn));
oci_execute($stid) or die(oci_error($conn));

第14行是oci\U execute($stid)或die(oci\U error($conn))

我是Oracle的新手,不理解这个错误。我使用Google也在StackOverflow上找到了许多帖子,但没有一个答案能够解决这个问题并正确地创建一个新表。

我做错了什么?


共有1个答案

黄君博
2023-03-14

我相信您习惯于在MySQL中创建表。Oracle没有MySQL那样的auto\u增量。

$stid = oci_parse($conn, 'CREATE TABLE tags (
                           id INT NOT NULL,
                           name VARCHAR2(64) NOT NULL),
                           PRIMARY KEY(id)') 

Oracle使用对象序列创建自动增量值。

假设您有正确的权限,如何创建序列的示例。

CREATE SEQUENCE  "CCAD"."AUTH_GROUP_SQ"      
MINVALUE 1 
MAXVALUE 999999999999 
INCREMENT BY 1 
START WITH 91 
CACHE 20 
NOORDER  NOCYCLE;

连同插入触发器。

create or replace TRIGGER "AUTH_GROUP_TR"
BEFORE INSERT ON "AUTH_GROUP"
FOR EACH ROW
WHEN (new."ID" IS NULL)
BEGIN
    SELECT "AUTH_GROUP_SQ".nextval
    INTO :new."ID" FROM dual;
END;
 类似资料: