2011-02-10 88 views
0

假設我有一個包含指向表名,使用下面的模式ID列表的表:SQL外鍵指定表

RemoteTables 
============ 
id (Primary Key) 
tableName (string) 

想我也有另一個表下面的架構:

AnotherTable 
============ 
id (Primary Key) 
remoteTableId (foreign key referencing RemoteTables) 
remoteId ("special" foreign key) 

其中remoteId指向由remoteTableId指定的表中的一行。

我已經看到了一些我想要這樣做的情況,但是有沒有內置的SQL支持來以任何方式管理關係?

回答

1

因爲你正在構建一個自定義的元數據庫(數據字典),所以你在這裏有一個特殊類型的約束。所以沒有任何「內置」,本身。

最好的辦法是通過觸發器強制執行此操作,但不幸的是,觸發器並不總是像他們應該那樣容易。

+0

並且,當然,如果您想要正確的「外鍵」行爲,您還必須爲每個遠程表編寫觸發器(以防止或級聯刪除和更新) – 2011-02-10 08:19:26