外來鍵建立方式

2021-10-25 03:31:33 字數 2479 閱讀 8375

建立方式一:建立表時加入外來鍵

-- 建立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...