簡體   English   中英

如何在oracle中添加作為保留字的外鍵

[英]How to add a foreign key that is a reserved word in oracle

我正在嘗試更改 oracle SQL 中的一個表以向其中添加一個外鍵,該外鍵名稱是一個保留字(具體來說是“日期”)。 我嘗試使用雙引號、單引號、無引號和方括號,但似乎沒有任何效果。

我的代碼如下:

ALTER TABLE GAME ADD FOREIGN KEY ("Date") REFERENCES SCHEDULE("Date");

它用雙引號顯示的錯誤是: ORA-00904: "Date": invalid identifier

任何幫助表示贊賞。

您幾乎肯定不想:

  1. 在保留字后命名列。
  2. 必須始終為這些列使用帶引號的標識符(以及正確的大小寫)。
  3. 在您的日程表中只有唯一的日期。

但是,如果你真的這樣做了,那么假設你有這些表格:

CREATE TABLE schedule ("Date" DATE);
CREATE TABLE game ("Date" DATE);

然后,您可以在schedule表上創建一個UNIQUE約束,該約束將用作引用約束的“目標”。

ALTER TABLE SCHEDULE ADD CONSTRAINT schedule__date__u UNIQUE ("Date");

然后在game表上創建外鍵約束:

ALTER TABLE GAME ADD CONSTRAINT game__date__fk FOREIGN KEY ("Date") REFERENCES SCHEDULE("Date");

或者,如果您希望系統名稱命名約束,那么您的代碼可以工作:

ALTER TABLE GAME ADD FOREIGN KEY ("Date") REFERENCES SCHEDULE("Date");

db<> 在這里擺弄

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM