MySQL command Line 外键约束(FOREIGN KEY)
来源:互联网 发布:java 生成xml格式报文 编辑:程序博客网 时间:2024/06/05 20:16
建立外键约束可以采用列级约束语法和表级约束语法,如果仅仅对单独的一个数据列建立外键约束,则使用列级约束语法即可;如果需要对多个列组合创建外键约束,或者需要为外键约束指定名字则必须使用表级约束语法。
使用列级约束语法建立外键约束直接使用references关键字,references指定该列参照的哪个主表,以及参照主表的哪一列。如下SQL语句所示:
create table teacher_table
(
teacher_id int auto_increment,
teacher_name varchar(255),
primary key(teacher_id)
);
create table student_table
(
student_id int auto_increment primary key,
student_name varchar(255),
java_teacher int references teacher_table(teacher_id)
);
虽然MySQL支持使用列级约束的语法来建立外键约束,但这种列级的约束语法建立的外键约束不会生效,MySQL提供这种列级约束语法仅仅是和标准SQL保持良好的兼容性。因此,如果需要MySQL中的外键约束生效,应使用表级约束语法。create table teacher_table1
(
teacher_id int auto_increment,
teacher_name varchar(255),
primary key(teacher_id)
);
create table student_table1
(
student_id int auto_increment primary key,
student_name varchar(255),
java_teacher int,
foreign key(java_teacher) references teacher_table1(teacher_id)
或者使用下面的语句建立外键约束,并指定外键约束名student_teacher_fk
constraint student_teacher_fk foreign key(java_teacher) references teacher_table1(teacher_id)
);
如果使用表级约束语法,则可以需要使用foreign key来指定本表的外键列,并使用references来指定参照哪个主表,以及参照到主表的哪个列。使用表级约束语法可以使用外键的约束指定约束名,如果创建外键约束没有指定约束名,则MySQL会为该外键约束命名为table_name_ibfk_n,其中table_name是从表的表名,而n是从1开始的整数。
- MySQL command Line 外键约束(FOREIGN KEY)
- MySQL 外键约束(FOREIGN KEY)
- mysql 设置外键约束(foreign key)
- Mysql数据库外键约束(foreign key)
- mysql无法添加外键约束(cannot add foreign key constraint)
- SQL约束(主键约束 primary key、外键约束 foreign key、唯一约束unique 、CHECK约束)
- 外键(Foreign Key)约束。
- SQL FOREIGN KEY(约束)
- mysql无法添加外键约束(cannot add foreign key constraint)
- mysql中添加外键约束失败(cannot add foreign key constraint)
- SQL Server 2005 建立外键约束(foreign key)
- 第五章、数据库设计(三范式、主键约束 primary key、外键约束 foreign key、唯一约束unique 、CHECK约束)
- mysql创建外键(Foreign Key)方法
- 聊聊Oracle外键约束(Foreign Key)的几个操作选项
- 无法添加外键约束的原因(cannot add foreign key constraint)
- FOREIGN KEY 约束
- FOREIGN KEY 约束
- SQL FOREIGN KEY 约束
- sql 执行顺序
- JDBC编程步骤
- pyt_hon + set_up.py + git
- 在AWT中绘图
- eclipse无法识别Web项目的问题
- MySQL command Line 外键约束(FOREIGN KEY)
- 线程的创建和启动
- 线程的生命周期
- 线程控制
- android4.2.2生命周期机横竖屏展示
- ResultSetMetaData和DatabaseMetaData
- 面向对象的三个特征
- 【转载】JAVA --String类笔试面试题
- 一些java笔试面试题