MySQL主外來鍵定義

2021-09-27 02:58:58 字數 3078 閱讀 7655

一、sql語句建立資料表並設定主外來鍵關係

createtabledemo.chinesecharinfo

(

idintnotnullauto_increment,

hanzivarchar(10)notnull,

primarykey(id)

)

engine=innodb auto_increment=1defaultcharset=utf8collate=utf8_general_ci;

createtabledemo.chinesepinyininfo

(

idintnotnullauto_increment,

charidintnull,

pinyinvarchar(10)null,

tone tinyint unsignednull,

primarykey(id),

-- 方式一:不指定外來鍵名稱,資料庫自動生成

foreignkey(charid)referenceschinesecharinfo(id)ondeletecascadeonupdatecascade

-- 方式二:指定外鍵名稱為(fk_name)

-- constraint fk_name foreign key (charid) references chinesecharinfo(id) on delete cascade on update cascade

)

engine=innodb auto_increment=1defaultcharset=utf8collate=utf8_general_ci;

二、當資料表已經存在時,就要使用下面的方法建立主外來鍵關係

-- 為表(demo.chinesepinyininfo)中欄位(charid)新增外來鍵,並指定外來鍵名為(fk_name)

altertabledemo.chinesepinyininfoaddconstraintfk_nameforeignkey(charid)referenceschinesecharinfo(id);

-- 為表(demo.chinesepinyininfo)中欄位(charid)新增外來鍵,不指定外鍵名,由資料庫自動生成外鍵名

altertabledemo.chinesepinyininfoaddforeignkey(charid)referenceschinesecharinfo(id);

三、刪除主外來鍵約束

-- 通過修改列的屬性來刪除自增長,第乙個(id)為原列名,第二個(id)為新列名

altertabledemo.chinesepinyininfo change id idintnotnull;

-- 刪除表(demo.chinesepinyininfo)中的主鍵約束,如果主鍵列為自增列,則需要先刪除該列的自增長

altertabledemo.chinesepinyininfodropprimarykey;

-- 刪除表(demo.chinesepinyininfo)中的名稱為(fk_name)的外來鍵

altertabledemo.chinesepinyininfodropforeignkeyfk_name;

mysql建立主外來鍵關聯 mysql主外來鍵建立心得

mysql主主外來鍵建立 1 確保參照的表和字段是存在的 2 關聯表必須是innodb儲存型別 3 必須設定主關聯表主鍵 4 主鍵與外來鍵資料型別和字元編碼 unsigned 必須一致 5 確保以上宣告的句法是正確的 附 mysql建立表預設型別為 myisam 如果要改變預設表型別可在my.inf...

mysql主外來鍵

自己的 總提示 error 1005 can t create table errno 150 的錯誤鬱悶了好幾天,看了下面的文章終於成功了,犯了下面提到的三情況中的第三種,太不細心了,居然忽略了 unsigned 大家也要多留意呀!參照完整性 referentialintegrity 是資料庫設計...

mysql查詢主外來鍵

查詢資料庫的所有主外來鍵 select table name 表名 constraint name 主 外來鍵名稱 column name 欄位名 referenced table name 主表名稱 referenced column name 主表字段 from information sche...