mysql外鍵創(chuàng)建不成功/失效如何處理
當(dāng)前mysql版本:SELECT VERSION();
結(jié)果為:5.5.40。
在復(fù)習(xí)mysql外鍵約束時(shí)創(chuàng)建表格:stu與grade,目標(biāo):grade的id隨著student的id級聯(lián)更新,且限制刪除。
創(chuàng)建student表格:
CREATE TABLE student ( id INT ( 8 ), NAME VARCHAR ( 20 ), department VARCHAR ( 20 ), INDEX ( id )) ENGINE = INNODB;
創(chuàng)建grade表格:
CREATE TABLE grade ( id INT PRIMARY KEY auto_increment, score INT NOT NULL, stu_id INT, index( id ), CONSTRAINT yueshu1 FOREIGN KEY ( id ) REFERENCES student ( id ) ON DELETE RESTRICT ON UPDATE CASCADE )ENGINE = INNODB ;
原以為已經(jīng)成功,且發(fā)現(xiàn)外鍵仿佛沒有添加成功,即grade表的id字段不會隨著student表的id字段更新,且沒有刪除的限制。
經(jīng)過排查發(fā)現(xiàn)是表的引擎不對(MyISAM不支持外鍵,InnoDB支持)使用了:MyISAM
使用語句為:
SHOW TABLE STATUS FROM fuxi WHERE NAME LIKE 'grade';
因此將創(chuàng)建grade表的語句指定engine=INNODB即可:
CREATE TABLE grade ( id INT PRIMARY KEY auto_increment, score INT NOT NULL, stu_id INT, index( id ), CONSTRAINT yueshu1 FOREIGN KEY ( id ) REFERENCES student ( id ) ON DELETE RESTRICT ON UPDATE CASCADE )ENGINE = INNODB ;
到此這篇關(guān)于mysql外鍵創(chuàng)建不成功/失效如何處理的文章就介紹到這了,更多相關(guān)mysql外鍵創(chuàng)建不成功/失效內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- MySQL 創(chuàng)建主鍵,外鍵和復(fù)合主鍵的語句
- mysql外鍵(Foreign Key)介紹和創(chuàng)建外鍵的方法
- MySQL外鍵創(chuàng)建失敗1005原因匯總
- MYSQL建立外鍵失敗幾種情況記錄Can''t create table不能創(chuàng)建表
- MySQL創(chuàng)建數(shù)據(jù)表并建立主外鍵關(guān)系詳解
- MySQL無法創(chuàng)建外鍵的原因及解決方法
- 解析MySQL創(chuàng)建外鍵關(guān)聯(lián)錯(cuò)誤 - errno:150
- 解析在MySQL里創(chuàng)建外鍵時(shí)ERROR 1005的解決辦法
相關(guān)文章
MySQL數(shù)據(jù)庫中刪除重復(fù)記錄的方法總結(jié)[推薦]
2011-11-11mysql中count(), group by, order by使用詳解
mysql中order by 排序查詢、asc升序、desc降序,group by 分組查詢、having 只能用于group by子句、作用于組內(nèi),having條件子句可以直接跟函數(shù)表達(dá)式。使用group by 子句的查詢語句需要使用聚合函數(shù)。2017-05-05優(yōu)化Mysql數(shù)據(jù)庫的8個(gè)方法
本文通過8個(gè)方法優(yōu)化Mysql數(shù)據(jù)庫:創(chuàng)建索引、復(fù)合索引、索引不會包含有NULL值的列、使用短索引、排序的索引問題、like語句操作、不要在列上進(jìn)行運(yùn)算、不使用NOT IN和<>操作2013-11-11