一、sql語句建立資料表並設定主外來鍵關係
create
table
demo.chinesecharinfo
(
id
int
not
null
auto_increment,
hanzi
varchar
(10)
not
null
,
primary
key
(id)
)
engine=innodb auto_increment=1
default
charset=utf8
collate
=utf8_general_ci;
create
table
demo.chinesepinyininfo
(
id
int
not
null
auto_increment,
charid
int
null
,
pinyin
varchar
(10)
null
,
tone tinyint unsigned
null
,
primary
key
(id),
-- 方式一:不指定外來鍵名稱,資料庫自動生成
foreign
key
(charid)
references
chinesecharinfo(id)
on
delete
cascade
on
update
cascade
-- 方式二:指定外鍵名稱為(fk_name)
-- constraint fk_name foreign key (charid) references chinesecharinfo(id) on delete cascade on update cascade
)
engine=innodb auto_increment=1
default
charset=utf8
collate
=utf8_general_ci;
二、當資料表已經存在時,就要使用下面的方法建立主外來鍵關係
-- 為表(demo.chinesepinyininfo)中欄位(charid)新增外來鍵,並指定外來鍵名為(fk_name)
alter
table
demo.chinesepinyininfo
add
constraint
fk_name
foreign
key
(charid)
references
chinesecharinfo(id);
-- 為表(demo.chinesepinyininfo)中欄位(charid)新增外來鍵,不指定外鍵名,由資料庫自動生成外鍵名
alter
table
demo.chinesepinyininfo
add
foreign
key
(charid)
references
chinesecharinfo(id);
三、刪除主外來鍵約束
-- 通過修改列的屬性來刪除自增長,第乙個(id)為原列名,第二個(id)為新列名
alter
table
demo.chinesepinyininfo change id id
int
not
null
;
-- 刪除表(demo.chinesepinyininfo)中的主鍵約束,如果主鍵列為自增列,則需要先刪除該列的自增長
alter
table
demo.chinesepinyininfo
drop
primary
key
;
-- 刪除表(demo.chinesepinyininfo)中的名稱為(fk_name)的外來鍵
alter
table
demo.chinesepinyininfo
drop
foreign
key
fk_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...