sage int enum(0,1,2,3,4,5,6,7,8,9,10),只能用枚舉法!mysql不具備限制范圍的功能
網(wǎng)站設(shè)計(jì)制作過(guò)程拒絕使用模板建站;使用PHP+MYSQL原生開(kāi)發(fā)可交付網(wǎng)站源代碼;符合網(wǎng)站優(yōu)化排名的后臺(tái)管理系統(tǒng);網(wǎng)站建設(shè)、成都網(wǎng)站建設(shè)收費(fèi)合理;免費(fèi)進(jìn)行網(wǎng)站備案等企業(yè)網(wǎng)站建設(shè)一條龍服務(wù).我們是一家持續(xù)穩(wěn)定運(yùn)營(yíng)了十余年的創(chuàng)新互聯(lián)公司網(wǎng)站建設(shè)公司。
那你在用戶輸入的時(shí)候給他來(lái)個(gè) select框吧,然后在入庫(kù)的時(shí)候比對(duì)下,是這些才可以入庫(kù)操作,否則,提示您輸入的用戶名不符合規(guī)范
SQL CHECK?約束。
CHECK?約束用于限制列中的值的范圍。
如果對(duì)單個(gè)列定義?CHECK?約束,那么該列只允許特定的值。
如果對(duì)一個(gè)表定義CHECK約束,那么此約束會(huì)在特定的列中對(duì)值進(jìn)行限制。
--刪除表
drop table temp;
--創(chuàng)建表
CREATE TABLE temp (flag NUMBER(1));
--增加約束
ALTER TABLE temp?ADD?CONSTRAINT?ck_temp_flag CHECK
(flag=1 or flag=0);
--測(cè)試效果版
insert into temp values(1);
insert into temp values(0);
insert into temp values(1);
--測(cè)試效果(約束禁止插入數(shù)據(jù)),提示權(quán):違反檢查約束條件
insert into temp values(2);
insert into temp values(3);
SQL CHECK Constraint on CREATE TABLE。
下面的?SQL?在?"Persons"?表創(chuàng)建時(shí)為?"Id_P"?列創(chuàng)建?CHECK?約束。CHECK?約束規(guī)定?"Id_P"?列必須只包含大于?0?的整數(shù)。
My SQL:
CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CHECK (Id_P0)
)
擴(kuò)展資料:
不同數(shù)據(jù)庫(kù)的約束寫法:
SQL Server / Oracle / MS Access:
CREATE TABLE Persons
(
Id_P int NOT NULL?CHECK (Id_P0),
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
如果需要命名?CHECK?約束,以及為多個(gè)列定義?CHECK?約束,請(qǐng)使用下面的?SQL?語(yǔ)法:
MySQL / SQL Server / Oracle / MS Access:
CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT chk_Person CHECK (Id_P0 AND City='Sandnes')
)
SQL CHECK Constraint on ALTER TABLE.
如果在表已存在的情況下為?"Id_P"?列創(chuàng)建?CHECK?約束,請(qǐng)使用下面的?SQL:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons
ADD CHECK (Id_P0)
如果需要命名?CHECK?約束,以及為多個(gè)列定義?CHECK?約束,請(qǐng)使用下面的?SQL?語(yǔ)法:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons
ADD CONSTRAINT chk_Person CHECK (Id_P0 AND City='Sandnes')
撤銷?CHECK?約束。
如需撤銷?CHECK?約束,請(qǐng)使用下面的?SQL:
SQL Server / Oracle / MS Access:
ALTER TABLE Persons
DROP CONSTRAINT chk_Person
這是一項(xiàng)新功能,用于指定在插入或更新到一行之前檢查值的條件。如果表的任何行的搜索條件的結(jié)果為 FALSE,則約束可能返回錯(cuò)誤(但如果結(jié)果為 UNKNOWN 或 TRUE,則約束不會(huì)返回錯(cuò)誤)。此功能開(kāi)始在 MySQL 8.0.16 上運(yùn)行,在以前的版本中,我們可以創(chuàng)建它,但它不起作用,這意味著支持語(yǔ)法,但不起作用。要牢記的使用規(guī)則:
AUTO_INCREMENT 自增列不允許使用
引用另一個(gè)表中的另一列不允許使用
存儲(chǔ)的函數(shù)和用戶定義的函數(shù)不允許使用
存儲(chǔ)過(guò)程和函數(shù)參數(shù)不允許使用
子查詢不允許使用
在外鍵中用于后續(xù)操作(ON UPDATE,ON DELETE)的列不允許使用
為下一條語(yǔ)句 INSERT,UPDATE,REPLACE,LOAD DATA 和 LOAD XML 評(píng)估此次監(jiān)測(cè)。此外,還會(huì)為 INSERT IGNORE,UPDATE IGNORE,LOAD DATA…IGNORE 和 LOAD XML…IGNORE 評(píng)估此監(jiān)測(cè)約束。對(duì)于這些語(yǔ)句,如果約束的評(píng)估結(jié)果為 FALSE,則會(huì)發(fā)生警告。插入或更新被跳過(guò)。
我們可以使用此功能在表中添加更多的邏輯,但是根據(jù)我以前作為程序員的經(jīng)驗(yàn),我不建議在表中添加邏輯,因?yàn)槌悄鸁o(wú)法訪問(wèn)應(yīng)用程序代碼,否則很難找到或調(diào)試錯(cuò)誤。
網(wǎng)站欄目:mysql怎么約束列取值 mysql中約束
URL網(wǎng)址:http://muchs.cn/article24/doshoje.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)、關(guān)鍵詞優(yōu)化、網(wǎng)站改版、網(wǎng)站收錄、網(wǎng)頁(yè)設(shè)計(jì)公司、App開(kāi)發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容