<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                [TOC] ## CHECK 語法 任何應用都對數據的正確性有要求。比如,用戶的年齡必須是大于零的,用戶的登錄名中不能包含空格,用戶的密碼必須滿足一定的復雜度,等等。 <br/> 語法 ``` [CONSTRAINT constraint_name] CHECK(expr) ``` > CONSTRAINT 可以給約束起名,方便報錯時,更加清楚 > ### 帶約束名稱 不帶約束名 ``` CREATE TABLE products ( product_no integer, name text, price numeric CHECK (price > 0) ); ``` 帶約束名稱 ``` CREATE TABLE products ( product_no integer, name text, price numeric CONSTRAINT positive_price CHECK (price > 0) ); ``` ### 年齡不能小于0 ``` CREATE TABLE users ( id INTEGER PRIMARY KEY, age INTEGER NOT NULL CHECK(age > 0) ); ``` or ``` CREATE TABLE users ( id INTEGER PRIMARY KEY, age INTEGER NOT NULL, CONSTRAINT users_age_check CHECK(age > 0) ); ``` 多行約束 check ``` CREATE TABLE users ( id INTEGER PRIMARY KEY, age INTEGER NOT NULL, CONSTRAINT users_age_check CHECK(age > 0), CONSTRAINT users_age_check1 CHECK(age < 10) ); ``` 修改字段時 ``` ALTER TABLE users ADD CONSTRAINT users_age_check CHECK(age > 0); ``` ### 長度限制 ``` CREATE TABLE users ( id SERIAL PRIMARY KEY, name VARCHAR(45) NOT NULL, login_name VARCHAR(45) NOT NULL CHECK(length(login_name) >= 4), password VARCHAR(45) NOT NULL CHECK(length(password) >= 8), CHECK(login_name <> password) ); ``` ### 約束設計兩個字段的關系 原價大于打折價格 ```sql CREATE TABLE products ( product_no integer, name text, price numeric CHECK (price > 0), discounted_price numeric CHECK (discounted_price > 0), CHECK (price > discounted_price) -- or CHECK (discounted_price > 0 AND price > discounted_price) ); ``` > 約束可是作為一個獨立的項出現在逗號分隔的列列表中,被稱為表約束 > 可用 `AND` 可設置對條件 ## 非空約束 ``` CREATE TABLE products ( product_no integer NOT NULL, name text NOT NULL, price numeric ); ``` 等效于`CHECK (column_name IS NOT NULL)`,但是前者更高效,后者可以為約束取名 一個列也可以有多個約束 ``` price numeric NOT NULL CHECK (price > 0) ``` ## 唯一約束 ``` CREATE TABLE products ( product_no integer UNIQUE, name text, price numeric ); ``` 表約束 ``` CREATE TABLE example ( a integer, b integer, c integer, UNIQUE (a, c) ); ``` 為唯一鎖命名 ``` CREATE TABLE products ( product_no integer CONSTRAINT must_be_different UNIQUE, name text, price numeric ); ``` ## 主鍵約束 ``` CREATE TABLE products ( product_no integer PRIMARY KEY, name text, price numeric ); ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看