2013-08-06 20 views
1

我试过搜索这个主题,并且我的搜索引导了我这种格式,它仍然会引发错误。当我执行我的脚本时,我基本上会在后面的所有语句中得到一大堆ORA-01735错误。我完成了不同的工作,但是Google使用这种格式仍然不起作用。有小费吗?在SQL中更改脚本 - ORA 01735

CREATE TABLE table7 
(
column1 int NOT NULL, 
column2 int NOT NULL, 
column3 int NOT NULL 
) 
/

ALTER TABLE table7 

ADD( pk1 PRIMARY KEY(column1), 
    fk1 FOREIGN KEY(column2) REFERENCES Table1(column2), 
    fk2 FOREIGN KEY(column3) REFERENCES Service(column3) 
) 
/
+1

它看起来像ORA-01735是Oracle错误代码,所以我加了一个标签为Oracle。 – 2013-08-06 17:37:15

+0

“*任何提示?*” - 语法在手册中详细记录。不伤害阅读... –

回答

3

ADD应围绕每个列的定义。大约3个新列不会包含单个ADD

请参见:http://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_3001.htm#i2183462

主键和外键约束,你需要的CONSTRAINT关键字。请参阅:http://docs.oracle.com/javadb/10.3.3.0/ref/rrefsqlj81859.html“添加约束”部分。

编辑:这是只有在我试图拨弄工作的事情:

ALTER TABLE table7 
ADD (
     CONSTRAINT pk1 PRIMARY KEY (column1), 
     CONSTRAINT fk1 Foreign Key (column2) REFERENCES Table1 (column2), 
     CONSTRAINT fk2 Foreign Key (column3) REFERENCES Service (column3) 
    ) 

这里的小提琴:http://sqlfiddle.com/#!4/9d2a3

+0

感谢您的帮助。我原本错误了,经过一些谷歌搜索后,发现这个例子https://forums.oracle.com/thread/2148438 不知道我错过了约束关键字,但出于某种原因,我认为他们对于FK和PK没有必要。在附注中,该示例仅使用一个ADD?那是不正确的? – Killian

+1

@Killian按照例子!我是一个MySQL/SQLServer的开发者;-)我只是喜欢阅读文档有时... – 2013-08-06 18:00:43

1

检查了这一点:

ALTER TABLE table7 
ADD pk1 PRIMARY KEY(column1), 
ADD fk1 FOREIGN KEY(column2) REFERENCES Table1(column2), 
ADD fk2 FOREIGN KEY(column3) REFERENCES Service(column3) 

见语法和示例:

http://docs.oracle.com/cd/E17952_01/refman-5.1-en/alter-table.html

http://docs.oracle.com/cd/E17952_01/refman-5.1-en/alter-table-examples.html

+0

我不能让这个在我使用的小提琴中运行(Oracle 11g)。 – 2013-08-06 18:21:38

+1

你的链接是** MySQL **,那不是Oracle。 –

-1

ALTER TABLE表7 ADD( 约束PK1 PRIMARY KEY(列1), 约束FK1外键(列2)参考文献表1(列2), 约束FK2外键(栏3)参考文献服务(栏3) )

它为我工作.Thanks