怎么给一张表添加外键(四种方法)

添加外键约束名字一定不能重复
如何添加外键
方法一:直接在属性值后面添加

create table score(
cscore int(11),
st_id int(50) references student(id),
cs_id int(30) references classes(id),
primary key(st_id,cs_id)
);

方法二:

create table score(
cscore int(11),
st_id int(50),
cs_id int(30),
primary key(st_id,cs_id),
FOREIGN KEY (st_id) REFERENCES student(id),
FOREIGN KEY (cs_id) REFERENCES classes(id)
);

方法三:添加约束

create table score(
cscore int(11),
st_id int(50),
cs_id int(30),
primary key(st_id,cs_id),
CONSTRAINT `FK_ID_ST` FOREIGN KEY (st_id) REFERENCES student(id),
CONSTRAINT `FK_ID_CS` FOREIGN KEY (cs_id) REFERENCES classes(id)
);

方法四:在表的定义外进行添加

alter table 表名 add constraint FK_ID foreign key(你的外键字段名) REFERENCES 外表表名(对应的表的主键字段名);
时间: 2024-08-25 21:18:19

怎么给一张表添加外键(四种方法)的相关文章

mysql为表添加外键完成性约束 报错Can't create table 'sfkbbs.#sql-513_25' (errno: 150)

代码 alter table sfk_son_module add constraint foreign key(father_module_id) references sfk_father_module(id) on delete restrict on update restrict; (constraint 后面可以加上约束名字) 错误原因是之前两张表的id的类型不一样,一个时int,一个时bigint 解决办法时修改表, alter table sfk_father_module mo

mysql查询某张表的外键

mysql和oracle一样也是有数据字典表的,是存在单独的一个库叫INFORMATION_SCHEMA,要查看某张表的外键要从字典表中查找 如mysql查询某张表的外键,可以用下面的方式查询 use INFORMATION_SCHEMA; select TABLE_NAME,COLUMN_NAME,CONSTRAINT_NAME,REFERENCED_TABLE_NAME,REFERENCED_COLUMN_NAME from KEY_COLUMN_USAGE where table_name

增加表空间大小的四种方法

增加表空间大小的四种方法Meathod1:给表空间增加数据文件ALTER TABLESPACE app_data ADD DATAFILE 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP03.DBF' SIZE 50M;   Meathod2:新增数据文件,并且允许数据文件自动增长ALTER TABLESPACE app_data ADD DATAFILE 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP04.

子账号表的设计(不用递归实现查询,同一张表做外键)

最近公司在做<资管系统>账号管理部分需要得到所有子账号.父账号等等信息.个人觉得用递归查询比较繁琐,于是设计了以下表 关键字段:账号id,父账号.顶级账号.账号层次(也就是树的级别). 查询思路:查找顶级账号用层这个字段直接搞定 查找某个账号的子账号用该账号的顶级账号和层搞定 查找父账号用该账号的顶级账号和层搞定 设计难点:一张表外键关联到自己.添加修改删除时对数据的有效性有很大的保障 提供源码(包含查询方法),需要其他字段自行增加 (勿喷) 表和数据 -- -----------------

delphi TreeView 从数据库添加节点的四种方法

方法一:delphi中递归算法构建treeView 过程:通过读取数据库中table1的数据,来构建一颗树.table1有两个字段:ID,preID,即当前结点标志和父结点标志.所以整个树的表示为父母表示法.本递归算法不难写,但是要注意:程序内部的变量都应使用局部变量!比如当Query是外部变量(函数外定义或者直接通过控件拖拽得来)时就会得到错误的结果.代码如下: unit Unit1; interface uses  Windows, Messages, SysUtils, Variants,

Jmeter添加变量的四种方法

一.在样本中添加同请求一起发送的参数.根据服务器设置的数据类型,来添加不同类型的参数 二.用户定义的变量 1.创建:添加->配置元件->用户定义的变量 2.作用:当前的线程组内所有Sampler都可以引用变量,方便脚本更新:当参数发生变化时,只要在[用户定义的变量]中更新对应变量的参数即可,不需要逐个修改每个http中的参数 3.变量定义:可以是具体的值,也可以是函数(函数可自动生成:选项->函数助手对话框) 4.变量引用:Sample中引用变量的格式为${变量名} 三.函数助手对话框-

sql学习笔记(21)----------添加外键

最近在忙考试,比较烦!本人一见到考试就蒙圈了!完全大脑空白,不受控制,再加上变态监考老师,更别提有多痛苦了.还好,顺利完成了考试,抽出点空来学习一下MySQL和Oracle,发现点问题,好似很严重. 那么,我想问:  如果让你写SQL语句,添加外键,你会怎么写,如果这就是面试题,你该怎么写呢? 反正我是写不全,不能完全的写正确,平时我们都是是通过数据库的图形工具直接就可以操作主键和外键的设定,但是,如果动真格的去写一些SQL语句,似乎就很吃力了吧!所以我劝自己和读者,耐心点去写一些SQL语句,百

MySQL添加外键的方法

为book表添加外键: <1>明确指定外键的名称: 语法:alter table 表名 add constraint 外键的名称 foreign key(你的外键字段名) REFERENCES 外表表名(对应的表的主键字段名); alter table book add constraint FK_BOOK foreign key(pubid) references pub_com(id) on delete restrict on update restrict; <2>不指定外

mysql添加外键

为已经添加好的数据表添加外键: 语法:alter table 表名 add constraint FK_ID foreign key(你的外键字段名) REFERENCES 外表表名(对应的表的主键字段名); 例: alter table tb_active add constraint FK_ID foreign key(user_id) REFERENCES tb_user(id) //FK_ID是外键的名称 /* CREATE TABLE `tb_active` (  `id` int(1