我通過我的講稿讀,我看到了一個SQL語法:CREATE DOMAIN - 此語法存在哪種sql?
CREATE DOMAIN BranchNo AS CHAR(4)
CHECK (VALUE IN (SELECT branchNo FROM Branch));
第一個問題是......這DBMS支持創建域? MySQL的?訪問? ..?
第二個問題是......上面的語法究竟做了什麼?
非常感謝
我通過我的講稿讀,我看到了一個SQL語法:CREATE DOMAIN - 此語法存在哪種sql?
CREATE DOMAIN BranchNo AS CHAR(4)
CHECK (VALUE IN (SELECT branchNo FROM Branch));
第一個問題是......這DBMS支持創建域? MySQL的?訪問? ..?
第二個問題是......上面的語法究竟做了什麼?
非常感謝
CREATE DOMAIN創建一個新的域。域本質上是一個具有可選約束的數據類型(對允許的一組值的限制)。定義域的用戶成爲其所有者。
域對於將字段常用約束抽象到單個位置進行維護非常有用。例如,多個表可能包含電子郵件地址列,所有這些列都需要相同的CHECK約束來驗證地址語法。定義一個域,而不是單獨設置每個表的約束。
我知道這是因爲"CREATE DOMAIN" sql
告訴我。
對,非常感謝您的信息。我想我只是習慣於沒有這些約束,他們似乎是有用的...通常當我創建一個表,我只是在CREATE TABLE中定義數據類型...從來沒有見過這個CREATE DOMAIN之前。 – jonprasetyo
好吧,它與在另一個dbms中的表上放置觸發器並沒有多大區別。它本質上提供了在數據存儲之前過濾和驗證數據的機會。 –
[PostgreSQL](http://www.postgresql.org/docs/9.1/static/sql-createdomain.html) –
嗯......首先Google搜索結果爲「CREATE DOMAIN sql」爲您提供了一個很好的答案。也許先嚐試一下? –
對我而言,第一個谷歌搜索結果就是這個問題;) –