2012-06-24 65 views
1
create table loginDetails(
userId varchar(30), 
cellPhoneNo varchar(10),  
displayName varchar(20), 
password varchar(20), 
secretQuestion varchar(50), 
secretAnswer varchar(50), 
joiningDate date, 
foreign key(userId) references userDetails(userId) on delete cascade on update cascade 
); 

錯誤是在oracle中使用的。如何在oracle中使用級聯

foreign key(userId) references userDetails(userId) on delete cascade on update 

級聯 *

行錯誤9: ORA-00907:缺少右括號

此查詢正在MySQL,但在Oracle中不工作?請任何人告訴我它如何在oracle中工作。

+0

對於初學者來說,供應商(MySQL,Oracle,SQL Server等)之間的語法不盡相同。 「SQL」中的「S」代表「結構化」,可悲的是不是「標準化」。儘管ANSI正在努力改進,但支持和性能並不總是理想的。 –

回答

2

Oracle不支持級聯主鍵更新。主鍵應該是唯一的和不可變的,所以它不應該改變。由於您永遠不應該更新主鍵,因此不應該級聯這些更新。

通常,您可能也應該使用VARCHAR2數據類型而不是VARCHAR。目前,這些數據類型是相同的,但Oracle可能會在將來更改VARCHAR類型的語義,以使空字符串與NULL的處理方式不同。假設你不希望你的應用程序在將來的語義發生變化時有可能中斷,那麼使用VARCHAR2會更安全。