mysql外键语句怎么写 mysql怎么定义外键

MySql如何创建外键

create

创新互联公司专注于泰宁网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供泰宁营销型网站建设,泰宁网站制作、泰宁网页设计、泰宁网站官网定制、微信小程序定制开发服务,打造泰宁网络公司原创品牌,更为您提供泰宁网站排名全网营销落地服务。

table

volunteer(

志愿者编号

varchar(6)

not

null,

志愿者姓名

varchar(8),

班级编号

varchar(4),

constraint

PK_V

primary

key

(志愿者编号));

create

table

class(

班级编号

varchar(4),

班级名称

varchar(20),

学院

varchar(20),

constraint

PK_C

primary

key(班级编号),

班级编号

varchar

foreign

key

references

volunteer(班级编号));

你这个试下,我试了可以的

希望可以帮到你

SQL

创建外键语句的方法:constraint

外键名字

foreign

key

references

外键表(外键字段)

mysql添加外键的操作要自己输

mysql添加外键的操作要自己输的方法如下:

1、在CREATETABLE语句中,通过FOREIGNKEY关键字来添加外键。

2、在ALTERTABLE语句中,通过ADD和FOREIGNKEY关键字来添加外键。

Mysql怎么写外键

alter table table_name add constraint fk_column_id foreign key(column) references 主键表 (column_id);

mysql在建表的时候定义外键的语句怎么写?就像B表里面的id是A表的主键这句话建表的时候怎么写

ALTER TABLE B

ADD CONSTRAINT fk_B_A

FOREIGN KEY (ordersId)

REFERENCES  orderts(ordersId);

如果你还不是很明白的话, 下面是详细的例子:

-- 创建测试主表. ID 是主键.

CREATE TABLE test_main (

id      INT   NOT NULL,

value   VARCHAR(10),

PRIMARY KEY(id)  

);

-- 创建测试子表. 

CREATE TABLE test_sub (

id      INT  NOT NULL,

main_id INT ,

value   VARCHAR(10),

PRIMARY KEY(id)  

);

-- 插入测试主表数据.

INSERT INTO test_main(id, value) VALUES (1, 'ONE');

INSERT INTO test_main(id, value) VALUES (2, 'TWO');

-- 插入测试子表数据.

INSERT INTO test_sub(id, main_id, value) VALUES (1, 1, 'ONEONE');

INSERT INTO test_sub(id, main_id, value) VALUES (2, 2, 'TWOTWO');

注意,MySQL 建立表的时候,需要确认引擎,是否是 InnoDB 。 

Innodb存储引擎支持FOREIGN KEY和REFERENCES子句。

Innodb存储引擎执行ADD [CONSTRAINT [symbol]] FOREIGN KEY (...) REFERENCES ... (...)。请参见15.2.6.4节,“FOREIGN KEY约束”。

对于其它存储引擎,这些子句会被分析,但是会被忽略。

注意,MySQL 外键,必须指定 主表的列名称

mysql ALTER TABLE test_sub

-   ADD CONSTRAINT main_id_cons

-   FOREIGN KEY (main_id)

-   REFERENCES  test_main(id);

- //

Query OK, 2 rows affected (0.17 sec)

Records: 2  Duplicates: 0  Warnings: 0

mysql DELETE FROM

-   test_main

- WHERE

-   id = 1;

- //

ERROR 1451 (23000): Cannot delete or update a parent row: a foreign key constrai

nt fails (`test`.`test_sub`, CONSTRAINT `main_id_cons` FOREIGN KEY (`main_id`) R

EFERENCES `test_main` (`id`))

mysql外键约束怎么写

你好朋友

1.简介

外键表示一个表中的一个字段被另外一个表中的字段应用.外键对相关表中的数据造成了限制,使MySQL 能够保证参照完整性.

在MySQL 中,InnoDB 存储引擎支持外键.在一张表中,可以存在多个外键.

外键的创建可以在创建表的时候创建,也可以在创建表之后增加(考虑数据的完整性问题).

父表:外键所指向的表.

字表:相对于父表,拥有外键的表.

2.语法

create 语法

create table table_name(

column_1,

column_2,

....

constraint constraint_name foreign key (column_name)

references parent_table(column_name)

on delete action

on update action

) engine=InnoDB default charset utf8;

constraint 子句允许为外键定义一个名称,如果不写,MySQL 自动生成一个名称

foreign key 子句指定子表中要应用父表的列.注意:MySQL 会自动创建一个基于外键的索引.

references 子句指定父表中的被引用字段.foreign key 和references 指定的列数必须相同.

on delete: 定义当父表中的记录被删除时,子表的记录应该执行的动作.action包括:

on delete restrict:(默认),父表不能删除一个已经被子表引用的记录.

on delete no action:等同与on delete restrict

on delete cascade: 级联模式,父表删除后,对应子表关联的数据也跟着被删除

on delete set null:置空模式,父表删除后,对应子表关联的外键值被设置为NULL,需要注意的是,如果子表的外键设置not null ,则不能使用这种模式,因为会相互冲突.

on update:定义父表中的记录更新时,子表的记录应该执行的动作.action 包括:

on update restrict:(默认),父表不能更新一个已经被子表引用的记录.

on update no action:等同与on delete restrict

on update cascade: 级联模式,父表更新后,对应子表关联的数据也跟着被更新

on update set null:置空模式,父表更新后,对应子表关联的外键值被设置为NULL,需要注意的是,如果子表的外键设置not null ,则不能使用这种模式.

alter 语法

-- 添加外键

alter table table_name add constraint constraint_name

foreign key column_name

references parent_table(column_name)

on delete action

on update action

-- 删除外键

alter table table_name drop constraint_name;

-- 如果没有显式的定义名字,可以使用如下命令获取

show create table table_name;

3.演示

构造两张表categoryes 和products.每个类别有多种产品,而每个产品只属于一个类别.

-- 设置 类别表 categoryes 和产品表 products

create table categoryes(

c_id int not null auto_increment,

c_name varchar(45) not null,

c_description text,

primary key (c_id)

) engine=InnoDB default charset utf8 comment '类别表';

create table products(

p_id int not null auto_increment,

p_name varchar(45) not null,

p_price decimal(8,4),

c_id int,

primary key (p_id),

constraint fk_products_categoryes

foreign key (c_id)

references categoryes(c_id)

on delete set null

on update cascade

) engine=InnoDB default charset utf8 comment '产品表';

在这两张表的基础上,新生成一张vendors 供应商表,并更新products字段

-- 新生成一张表 供应商 vendors ,并为 products 新添加字段 v_id 外键

-- 引用 vendors.v_id

create table vendors(

v_id int not null auto_increment,

v_name varchar(45),

primary key (v_id)

) engine=InnoDB default charset utf8 comment '供应商';

alter table products add column v_id int not null;

alter table products add

constraint fk_products_vendors foreign key (v_id)

references vendors(v_id)

on delete no action

on update cascade;

望采纳祝你好运


当前文章:mysql外键语句怎么写 mysql怎么定义外键
地址分享:http://scjbc.cn/article/dodgsij.html

其他资讯