例子:

10年積累的成都網(wǎng)站設(shè)計、成都做網(wǎng)站經(jīng)驗(yàn),可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識你,你也不認(rèn)識我。但先建設(shè)網(wǎng)站后付款的網(wǎng)站建設(shè)流程,更有海陽免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
CREATE TABLE t_user (
id INT(11) NOT NULL AUTO_INCREMENT,
sex CHAR(2) default 'M' CHECK (sex in('M','F')),
PRIMARY KEY (id));
現(xiàn)在要說的是在列這一層次過濾的基于表定義之前就規(guī)范好的 CHECK 約束。(MySQL 版本 = 8.0.16)
mysql create table f1 (r1 int constraint tb_f1_r1_chk1 check (mod(r1,3)=0));
Query OK, 0 rows affected (0.03 sec)
mysql create table f2 (r1 int constraint tb_f2_r1_chk1 check (mod(r1,3)=0) not enforced);
Query OK, 0 rows affected (0.02 sec)
這里 CHECK 約束的相關(guān)限制如下:
1. constraint 名字在每個數(shù)據(jù)庫中唯一。
也就是說單個數(shù)據(jù)庫里不存在相同的兩個 constraint,如果不定義,系統(tǒng)自動生成一個唯一的約束名字。
2. check 約束針對語句 insert/update/replace/load data/load xml 生效;針對對應(yīng)的 ignore 語句失效。
3. 并非每個函數(shù)都可以使用,比如函數(shù)結(jié)果不確定的:NOW(),CONNECTION_ID(),CURRENT_USER()。
4. 不適用于存儲過程和存儲函數(shù)。
5. 系統(tǒng)變量不適用。
6. 子查詢不適用。
7. 外鍵動作(比如 ON UPDATE, ON DELETE) 不適用。
8. enforced 默認(rèn)啟用,如果單獨(dú)加上 not enforced ,check 約束失效。
1
創(chuàng)建sm數(shù)據(jù)庫中的選課表sc,包含的列為學(xué)號、課程編號、成績。
create
table
sc(
學(xué)號
varchar(10)
not
null,
--數(shù)據(jù)類型自己定
課程編號
varchar(10)
not
null,
成績
decimal(3,
0)
)
2
用sql語句給表student的“學(xué)號”列添加主鍵約束。
alter
table
student
add
constraint
pkstudent
primary
key
(學(xué)號)
3
用sql語句給表student的“性別”列添加check約束。
alter
table
student
add
constraint
chkstudentsex
check
(
性別
=
'女'
or
性別
=
'男')
4
用sql語句給表course的“課程編號”
列添加主鍵約束。
alter
table
course
add
constraint
pkcourse
primary
key
(課程編號)
5
用sql語句給表course的“課程名稱”
列添加unique約束。
alter
table
course
add
constraint
ukcourse
unique
(課程編號)
6
用sql語句給表sc的“學(xué)號”列添加外鍵約束,參照對象是表student的“學(xué)號”列。
alter
table
sc
add
constraint
fkscxh
foreign
key
(學(xué)號)
references
student
(學(xué)號)
7用sql語句給表sc的“課程編號”列添加外鍵約束,參照對象是表course的“課程編號”列。
alter
table
sc
add
constraint
fksckc
foreign
key
(課程編號)
references
course
(課程編號)
8用sql語句給表sc的“學(xué)號”“課程編號”列添加組合主鍵約束。
alter
table
sc
add
constraint
pksc
primary
key
(學(xué)號,課程編號)
Innodb存儲引擎支持FOREIGN KEY和REFERENCES子句。Innodb存儲引擎執(zhí)行ADD [CONSTRAINT [symbol]] FOREIGN KEY (...) REFERENCES ... (...)。請參見15.2.6.4節(jié),“FOREIGN KEY約束”。對于其它存儲引擎,這些子句會被分析,但是會被忽略。對于所有的存儲引擎,CHECK子句會被分析,但是會被忽略。
手冊上注明:對于所有的存儲引擎,CHECK子句會被分析,但是會被忽略。
也就是check是無效的,你可以用程序去實(shí)現(xiàn),或者通過外鍵進(jìn)行約束
這個要么就是你自己錄入數(shù)據(jù)時注意,要么就是再建一個table,里面只有兩行,男和女,然后讓之前那個table的性別列作為新建table的外鍵就行,不過沒必要這么麻煩。還有一種方法就是寫約束,check(sex=‘M’ || sex='F'),不過不知道phpmyadmin中行不行,一般功能強(qiáng)大的都是oracle
文章名稱:mysql+怎么約束性別,mysql中的約束條件是什么啊
URL地址:http://chinadenli.net/article45/dsgpjhi.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司、網(wǎng)站策劃、虛擬主機(jī)、品牌網(wǎng)站制作、服務(wù)器托管、網(wǎng)頁設(shè)計公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)