使用 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/