第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

MySql錯(cuò)誤150-外鍵

MySql錯(cuò)誤150-外鍵

桃花長(zhǎng)相依 2020-02-01 16:29:50
當(dāng)我執(zhí)行以下兩個(gè)查詢時(shí)(我將它們簡(jiǎn)化為絕對(duì)必要):mysql> CREATE TABLE foo(id INT PRIMARY KEY);Query OK, 0 rows affected (0.01 sec)mysql> CREATE TABLE bar ( id INT, ref INT, FOREIGN KEY (ref) REFERENCES foo(id)) ENGINE InnoDB;我收到以下錯(cuò)誤:錯(cuò)誤1005(HY000):無法創(chuàng)建表'./test/bar.frm'(errno:150)我的錯(cuò)誤在哪里?半個(gè)小時(shí)盯著我看,我還沒找到他。
查看完整描述

3 回答

?
臨摹微笑

TA貢獻(xiàn)1982條經(jīng)驗(yàn) 獲得超2個(gè)贊

來自FOREIGN KEY約束


如果重新創(chuàng)建已刪除的表,則該表必須具有符合引用該表的外鍵約束的定義。如前所述,它必須具有正確的列名和類型,并且必須在引用的鍵上具有索引。如果不滿足這些條件,MySQL將返回錯(cuò)誤號(hào)1005,并在錯(cuò)誤消息中引用錯(cuò)誤150。


我懷疑這是因?yàn)槟鷽]有創(chuàng)建foo為InnoDB,因?yàn)槠渌磺锌雌饋矶歼€可以。


編輯:從同一頁(yè)面-


兩個(gè)表都必須是InnoDB表,并且不能是TEMPORARY表。


查看完整回答
反對(duì) 回復(fù) 2020-02-01
?
當(dāng)年話下

TA貢獻(xiàn)1890條經(jīng)驗(yàn) 獲得超9個(gè)贊

您可以使用該命令SHOW ENGINE INNODB STATUS來獲取有關(guān)該錯(cuò)誤的更多特定信息。


它將為您提供Status包含大量文本的列的結(jié)果。


查找名為L(zhǎng)ATEST FOREIGN KEY ERROR的部分,例如,可能看起來像這樣:


------------------------

LATEST FOREIGN KEY ERROR

------------------------

190215 11:51:26 Error in foreign key constraint of table `mydb1`.`contacts`:

Create  table `mydb1`.`contacts` with foreign key constraint failed. You have defined a SET NULL condition but column 'domain_id' is defined as NOT NULL in ' FOREIGN KEY (domain_id) REFERENCES domains (id) ON DELETE SET NULL ON UPDATE CASCADE,

    CONSTRAINT contacts_teams_id_fk FOREIGN KEY (team_id) REFERENCES teams (id) ON DELETE SET NULL ON UPDATE CASCADE

) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT' near ' ON DELETE SET NULL ON UPDATE CASCADE,

    CONSTRAINT contacts_teams_id_fk FOREIGN KEY (team_id) REFERENCES teams (id) ON DELETE SET NULL ON UPDATE CASCADE

) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT'.


查看完整回答
反對(duì) 回復(fù) 2020-02-01
?
HUWWW

TA貢獻(xiàn)1874條經(jīng)驗(yàn) 獲得超12個(gè)贊

要?jiǎng)?chuàng)建外鍵,

  1. 主列和參考列都必須具有相同的定義。

  2. 兩個(gè)表引擎必須是InnoDB。

您可以使用此命令更改表的引擎,請(qǐng)?jiān)趫?zhí)行此命令之前進(jìn)行備份。

alter table [表名] ENGINE = InnoDB;


查看完整回答
反對(duì) 回復(fù) 2020-02-01
  • 3 回答
  • 0 關(guān)注
  • 766 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)