SQL 错误 : ORA-00907: missing right parenthesis 00907. 00000 - "missing right parenthesis"

标签 sql oracle oracle10g

使用 sqldeveloper 创建这些表时出现缺少右括号的错误

 CREATE TABLE users (
  USER_ID INT(10) UNSIGNED NOT NULL,
  USERNAME VARCHAR(45) NOT NULL,
  PASSWORD VARCHAR(45) NOT NULL,
  ENABLED tinyint(1) NOT NULL,
  PRIMARY KEY (USER_ID)
);
CREATE TABLE user_roles (
  USER_ROLE_ID INT(10) UNSIGNED NOT NULL,
  USER_ID INT(10) UNSIGNED NOT NULL,
  AUTHORITY VARCHAR(45) NOT NULL,
  PRIMARY KEY (USER_ROLE_ID),
  KEY FK_user_roles (USER_ID),
  CONSTRAINT FK_user_roles FOREIGN KEY (USER_ID) 
  REFERENCES users (USER_ID)
);

更新...我修改了数据类型,但出现同样的错误

CREATE TABLE users (
  USER_ID NUMBER(10,0) UNSIGNED NOT NULL,
  USERNAME VARCHAR2(45) NOT NULL,
  PASSWORD VARCHAR2(45) NOT NULL,
  ENABLED NUMBER(3,0) NOT NULL,
  PRIMARY KEY (USER_ID)
);
CREATE TABLE user_roles (
  USER_ROLE_ID NUMBER(10,0) UNSIGNED NOT NULL,
  USER_ID NUMBER(10,0) UNSIGNED NOT NULL,
  AUTHORITY VARCHAR2(45) NOT NULL,
  PRIMARY KEY (USER_ROLE_ID),
  KEY FK_user_roles (USER_ID),
  CONSTRAINT FK_user_roles FOREIGN KEY (USER_ID) 
  REFERENCES users (USER_ID)
);

最佳答案

  • Oracle 不支持UNSIGNED
  • KEY FK_user_roles (USER_ID)
    is syntactically incorrect.

Create the tables as shown below:

SQL> CREATE TABLE users (
  2    USER_ID NUMBER(10,0)  NOT NULL,
  3    USERNAME VARCHAR2(45) NOT NULL,
  4    PASSWORD VARCHAR2(45) NOT NULL,
  5    ENABLED NUMBER(3,0) NOT NULL,
  6    PRIMARY KEY (USER_ID)
  7  );

Table created.

SQL> CREATE TABLE user_roles (
  2    USER_ROLE_ID NUMBER(10,0)  NOT NULL,
  3    USER_ID NUMBER(10,0)  NOT NULL,
  4    AUTHORITY VARCHAR2(45) NOT NULL,
  5    PRIMARY KEY (USER_ROLE_ID),
  6    CONSTRAINT FK_user_roles FOREIGN KEY (USER_ID)
  7    REFERENCES users (USER_ID)
  8  );

Table created.

SQL>

关于SQL 错误 : ORA-00907: missing right parenthesis 00907. 00000 - "missing right parenthesis",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31156644/

相关文章:

sql - 使用 mysql 5.1.41 更新表中最高的几行

php - 查询没有给出我想要的结果

mysql - 如何在mysql表中选择当月的日期范围?

oracle - 是否可以在 DataWindow 查询中使用 `WITH` 子句?

oracle - DBD::Oracle - PL/SQL block 不起作用

mysql - 内连接语法错误

oracle - 在 Oracle 中创建唯一的名字和姓氏字符串

java - 尝试在 JDBC 中使用两个连接对象

java - 如何克服 Tomcat Web 应用程序上的大数据集响应缓慢或内存限制?

oracle - 如何查找表中长列的长度