建立方式一:建立表時加入外來鍵
-- 建立grade表
create
table
`grade`
(`gradeid`
int(10)
notnull
auto_increment
comment
'年級id'
,`grandename`
varchar(50
)not
null
comment
'年級名稱'
,primary
key(
`gradeid`))
engine
=innodb
default
charset
=utf8
-- 建立student表
create
table
`student`
(`id`
int(4)
notnull
auto_increment
comment
'學號'
,`name`
varchar(30
)not
null
default
'匿名'
comment
'姓名'
,`gradeid`
int(10)
notnull
comment
'學生年級'
,-- student表的gradeid,引用grade表的gradeid
primary
key(
`id`),
key`fk_gradeid`
(`gradeid`),
constraint
`fk_gradeid`
foreign
key(
`gradeid`
)references grade (
`gradeid`))
engine
=innodb
default
charset
=utf8
注意:在刪除有外來鍵的表時應先刪除引用表(從表),然後刪除被引用的表(主表)。(上面應先刪除student表,之後在刪除grade表)若先刪除主表會報錯:cannot delete or update a parent row: a foreign key constraint fails
建立方式二:建立表後,再新增外來鍵約束
-- 建立grade表
create
table
`grade`
(`gradeid`
int(10)
notnull
auto_increment
comment
'年級'
,`gradename`
varchar(50
)not
null
comment
'年級名稱'
,primary
key(
`gradeid`))
engine
=innodb
default
charset
=utf8
-- 建立student表
create
table
`student`
(`id`
int(10)
notnull
auto_increment
comment
'學生id'
,`name`
varchar(20
)not
null
default
'匿名'
comment
'學生姓名'
,`gradeid`
int(10)
notnull
comment
'學生年級'
,primary
key(
`id`))
engine
=innodb
default
charset
=utf8
-- 建立外來鍵:alter table 從表 add constraint 約束名 foreign key(外來鍵的列名) references 主表 (哪個字段);
alter
table student
addconstraint
`fk_gradeid`
foreign
key(
`gradeid`
)references grade (
`gradeid`
);
MySQL建立外來鍵方式
建立主表 年級表 id 年級名稱 主表 create table if not exists grade gradeid int 10 primary key auto increment,gradename varchar 50 not null 建立外來鍵方式一 建立子表的同時建立外來鍵 學生資...
SQL建立外來鍵
建立外來鍵關係 先建主表再見從表 主表 create table zhu code int primary key name varchar 20 從表 create table cong code int primary key name varchar 20 zhu int,foreign ke...
mysql建立外來鍵
建立外來鍵的前提 本表的列必須與外來鍵型別相同 外來鍵必須是外表主鍵 外來鍵作用 使兩張表形成關聯,外來鍵只能引用外表中的列的值!指定主鍵關鍵字 foyunmkreign key 列名 引用外來鍵關鍵字 references 外來鍵表名 外來鍵列名 事件觸發限制 on delete和on updat...