1、只有InnoDB類型的表才可以使用外鍵。mysql默認(rèn)是MyISAM,這種類型不支持外鍵約束
成都創(chuàng)新互聯(lián)公司總部坐落于成都市區(qū),致力網(wǎng)站建設(shè)服務(wù)有網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站設(shè)計(jì)、網(wǎng)絡(luò)營銷策劃、網(wǎng)頁設(shè)計(jì)、網(wǎng)站維護(hù)、公眾號(hào)搭建、微信小程序、軟件開發(fā)等為企業(yè)提供一整套的信息化建設(shè)解決方案。創(chuàng)造真正意義上的網(wǎng)站建設(shè),為互聯(lián)網(wǎng)品牌在互動(dòng)行銷領(lǐng)域創(chuàng)造價(jià)值而不懈努力!
2、外鍵的好處:可以使得兩張表關(guān)聯(lián),保證數(shù)據(jù)的一致性和實(shí)現(xiàn)一些級(jí)聯(lián)操作。
3、外鍵的作用:
保持?jǐn)?shù)據(jù)一致性,完整性,主要目的是控制存儲(chǔ)在外鍵表中的數(shù)據(jù)。 使兩張表形成關(guān)聯(lián),外鍵只能引用外表中的列的值。
4、建立外鍵的前提:
兩個(gè)表必須是InnoDB表類型。
使用在外鍵關(guān)系的域必須為索引型(Index)。
使用在外鍵關(guān)系的域必須與數(shù)據(jù)類型相似。
5、創(chuàng)建的步驟
指定主鍵關(guān)鍵字: foreign key(列名)。
引用外鍵關(guān)鍵字: references 外鍵表名(外鍵列名)。
6、事件觸發(fā)限制:on delete和on update , 可設(shè)參數(shù)cascade(跟隨外鍵改動(dòng))。
restrict(限制外表中的外鍵改動(dòng)),set
Null(設(shè)空值),set Default(設(shè)默認(rèn)值)。
[默認(rèn)]no action
7、舉例
outTable表 主鍵 id 類型 int
創(chuàng)建含有外鍵的表:
代碼如下:
create table temp(
id int,
name
char(20),
foreign key(id) references outTable(id) on delete cascade on update
cascade);
說明:把id列 設(shè)為外鍵 參照外表outTable的id列 當(dāng)外鍵的值刪除 本表中對(duì)應(yīng)的列篩除 當(dāng)外鍵的值改變 本表中對(duì)應(yīng)的列值改變。
代碼如下:
create table temp( id int, name char(20),
foreign key(id) references outTable(id) on delete cascade on update
cascade);
Windows:Windows 的配置文件為 my.ini,一般在 MySQL 的安裝目錄下或者 c:Windows 下。
Linux:Linux 的配置文件為 my.cnf ,一般在 /etc 下。
大家也可以用下面的命令查一下(如果不是LNMP,路徑可能不同):
代碼如下
du -h --max-depth=1 /usr/local/mysql/var/*
如果看到大量大文件,且名為 mysql-bin.000014 這樣的,說明你也需要關(guān)閉日志文件,因?yàn)槟悴恢滥囊惶焖鼈儠?huì)把你VPS的硬盤塞滿。
用WINSCP把這些文件刪除吧。
如何關(guān)閉:
代碼如下
vi /etc/my.cnf
找到:
代碼如下
log-bin=mysql-bin
binlog_format=mixed
將這兩行注釋掉,前面加上#
然后保存。
最后用下面的指令重啟下LNMP。收工。
代碼如下
/root/lnmp restart
linux中還有另一種辦法
關(guān)閉mysql日志功能
1、進(jìn)去mysql
代碼如下
[root@localhost ~]# mysql -u root -p
Enter password:
2、查看日志文件
代碼如下
mysql show master logs;
會(huì)出現(xiàn)好多mysql-bin.0000*文件哦 這些都是日志文件
注:如果出現(xiàn)ERROR 1381 (HY000): You are not using binary logging 則說明你的日志文件已經(jīng)關(guān)閉啦
3、關(guān)閉mysql日志文件
代碼如下
mysql reset master; //關(guān)閉日志
mysql show master logs; //查看是否還有日志
mysql exit;
Bye
4、修改mysql配置文件my.cnf。找到log-bin=mysql-bin、binlog_format=mixed 在前面加注釋即可
5、重新啟動(dòng)mysql ok
除了 = ,還有兩個(gè)其他的操作符用來處理某個(gè)值和NULL做比較,也就是IS NULL and IS NOT NULL。
他們是ANSI標(biāo)準(zhǔn)中的一部分,因此也可以用在其他數(shù)據(jù)庫中。而=只能在mysql中使用。
mysql中有4類運(yùn)算符,它們是:
算術(shù)運(yùn)算符
比較運(yùn)算符
邏輯運(yùn)算符
位操作運(yùn)算符
算術(shù)操作符
算術(shù)操作符是SQL中最基本的操作運(yùn)算符,主要有一下幾種運(yùn)算符:
+(加)、 -(減)、 *(乘)、 /(除)、 %(求余或者模)
比較運(yùn)算符
一個(gè)比較運(yùn)算符的結(jié)果總是1,0或者是NULL。MySQL中的比較運(yùn)算符有:
=、=、 (!=)、=、=、、IS NULL、IS NOT NULL、LEAST、GREATEST、BETWEEN . . . AND. . . 、ISNULL、IN、NOT IN、LIKE、REGEXP
邏輯運(yùn)算符
邏輯運(yùn)算符的求值所得結(jié)果均為TRUE、FALSE或NULL。
邏輯運(yùn)算符有:
NOT 或者 !
AND 或者
OR 或者 ||
XOR(異或)
位運(yùn)算符
位運(yùn)算符是用來對(duì)二進(jìn)制字節(jié)中的位進(jìn)行測(cè)試、移位或者測(cè)試處理。位運(yùn)算符有:
位或(|)
位與()
位異或(^ )
位左移()
位右移()
位取反(~)