外鍵約束對父表的含義:
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)建站!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、微信平臺小程序開發(fā)、集團企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了鳳凰免費建站歡迎大家使用!
在父表上進行update/delete以更新或刪除在子表中有一條或多條對應(yīng)匹配行的候選鍵時,父表的行為取決于:在定義子表的外鍵時指定的on update/on delete子句, InnoDB支持5種方式, 分列如下
. cascade方式
在父表上update/delete記錄時,同步update/delete掉子表的匹配記錄
On delete cascade從mysql3.23.50開始可用; on update cascade從mysql4.0.8開始可用
. set null方式
在父表上update/delete記錄時,將子表上匹配記錄的列設(shè)為null
要注意子表的外鍵列不能為not null
On delete set null從mysql3.23.50開始可用; on update set null從mysql4.0.8開始可用
. No action方式
如果子表中有匹配的記錄,則不允許對父表對應(yīng)候選鍵進行update/delete操作
這個是ANSI SQL-92標準,從mysql4.0.8開始支持
. Restrict方式
同no action, 都是立即檢查外鍵約束
不知道這文章對你有沒有幫助!
格式:update 表名稱 set 字段名稱 = 字段名稱 + 1 [ where語句]
比如說數(shù)據(jù)庫中有一張student表,要想把id為1的學生成績(score)加1則
update student set score=score+1 where id = 1
如果你不加where系統(tǒng)就不會知道你具體要更新哪條記錄,而導(dǎo)致所有該表中score都增加1,當然,除非這就是你的本意。
用相關(guān)聯(lián)的參數(shù)進行更新,比如關(guān)聯(lián)的ID,父表中有一個id,子表中也有一個id,這兩個id的值是一樣的,這樣就可以同時更新了
如果是雙字段主鍵,則連接條件里加多一個字段就行了
建議修改如下試一試:
update a.menu_option set a.menu_option.`option_text`
= (select `option_text` from f.menu_option
where a.menu_option.menu_id = f.menu_option.menu_id and
a.menu_option.id = f.menu_option.id)
where exists ( select 1 from f.menu_option where
a.menu_option.menu_id = f.menu_option.menu_id
and a.menu_option.id = f.menu_option.id)
或者這樣寫
update a.menu_option, f.menu_option
set a.menu_option.`option_text`=f.menu_option.`option_text`
where a.menu_option.menu_id = f.menu_option.menu_id
and a.menu_option.id = f.menu_option.id
分享名稱:mysql怎么更新父鍵 mysql怎么更改主鍵
網(wǎng)站鏈接:http://www.chinadenli.net/article4/dodsdie.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序、外貿(mào)網(wǎng)站建設(shè)、關(guān)鍵詞優(yōu)化、用戶體驗、App開發(fā)、網(wǎng)站設(shè)計
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)