ORA-00907: 再次缺少右括号
ORA-00907: missing right parenthesis again
为什么?我用过
CONSTRAINT FK_r_p FOREIGN KEY (id_p) REFERENCES Perguntas (id_p)
之前,我不知道这是否有所不同,但是...这有什么问题?
CREATE TABLE Pergunta
(
id_p INT(4) NOT NULL PRIMARY KEY AUTO_INCREMENT,
nome_aluno VARCHAR2(60) NOT NULL,
titulo VARCHAR2(50) NOT NULL,
nome_disciplina VARCHAR2(50),
descricao VARCHAR2(4000) NOT NULL
);
CREATE TABLE Resposta
(
id_r INT(4) NOT NULL PRIMARY KEY AUTO_INCREMENT,
titulo VARCHAR2(50) NOT NULL,
descricao VARCHAR2(4000) NOT NULL,
FOREIGN KEY (id_p) REFERENCES Pergunta (id_p)
);
多个问题:
- Oracle 中的标识列是使用
generated always as identity
创建的
- Int 数据类型不需要长度。
- 引用另一个 table 是基于列的,你需要 link 一个列到另一个 table 中的一个列,所以当你 fk 到 id_p在 Pergunta 中,您需要在 table
中为其定义一列
我的意思是:
CREATE TABLE Pergunta(
id_p INT GENERATED ALWAYS AS IDENTITY NOT NULL,
nome_aluno VARCHAR2(60) NOT NULL,
titulo VARCHAR2(50) NOT NULL,
nome_disciplina VARCHAR2(50),
descricao VARCHAR2(4000) NOT NULL,
primary key(id_p)
);
CREATE TABLE Resposta(
id_r INT GENERATED ALWAYS AS IDENTITY NOT NULL,
titulo VARCHAR2(50) NOT NULL,
descricao VARCHAR2(4000) NOT NULL,
id_p int ,
FOREIGN KEY (id_p) REFERENCES Pergunta (id_p),
PRIMARY KEY(id_r)
);
为什么?我用过
CONSTRAINT FK_r_p FOREIGN KEY (id_p) REFERENCES Perguntas (id_p)
之前,我不知道这是否有所不同,但是...这有什么问题?
CREATE TABLE Pergunta
(
id_p INT(4) NOT NULL PRIMARY KEY AUTO_INCREMENT,
nome_aluno VARCHAR2(60) NOT NULL,
titulo VARCHAR2(50) NOT NULL,
nome_disciplina VARCHAR2(50),
descricao VARCHAR2(4000) NOT NULL
);
CREATE TABLE Resposta
(
id_r INT(4) NOT NULL PRIMARY KEY AUTO_INCREMENT,
titulo VARCHAR2(50) NOT NULL,
descricao VARCHAR2(4000) NOT NULL,
FOREIGN KEY (id_p) REFERENCES Pergunta (id_p)
);
多个问题:
- Oracle 中的标识列是使用
generated always as identity
创建的
- Int 数据类型不需要长度。
- 引用另一个 table 是基于列的,你需要 link 一个列到另一个 table 中的一个列,所以当你 fk 到 id_p在 Pergunta 中,您需要在 table 中为其定义一列
我的意思是:
CREATE TABLE Pergunta(
id_p INT GENERATED ALWAYS AS IDENTITY NOT NULL,
nome_aluno VARCHAR2(60) NOT NULL,
titulo VARCHAR2(50) NOT NULL,
nome_disciplina VARCHAR2(50),
descricao VARCHAR2(4000) NOT NULL,
primary key(id_p)
);
CREATE TABLE Resposta(
id_r INT GENERATED ALWAYS AS IDENTITY NOT NULL,
titulo VARCHAR2(50) NOT NULL,
descricao VARCHAR2(4000) NOT NULL,
id_p int ,
FOREIGN KEY (id_p) REFERENCES Pergunta (id_p),
PRIMARY KEY(id_r)
);