精华内容
下载资源
问答
  • mysql如何创建外键
    千次阅读
    2021-02-04 16:31:04

    通过给mysql的表字段添加外键约束,可以有效的保持数据的一致性和完整性,数据就不会很容易出问题。

    1、创建表时直接创建外键约束create table books(

    bookid number(10) not null primary key,

    bookName varchar2(20) not null,

    price number(10,2),

    categoryId number(10) not null references Category(id) --外键约束

    );

    备注:必须先创建参照表,才能在创建外键约束,即必须现有表Category,再有book

    2、先创建表,表创建成功后,单独添加外键约束create table books(

    bookid number(10) not null primary key,

    bookName varchar2(20) not null,

    price number(10,2),

    categoryId number(10) not null

    );

    ALTER TABLE books ADD CONSTRAINT FK_Book_categoryid FOREIGN KEY(categoryId ) REFERENCES Category(id);

    以上的2种方式就是目前在Mysql中添加外键约束的方式,希望今后大家在使用关联表时,可以给表的某些字段添加外键约束,使数据能够保持完整性。

    相关文章:

    MySQL外键约束OnDelete和OnUpdate的使用_MySQL

    MySQL外键约束的禁用与启用命令分享

    Mysql外键约束_MySQL

    更多相关内容
  • MySQL 外键
  • mysql建立外键

    2021-01-20 00:11:20
    建立外键的前提:本表的列必须与外键类型相同(外键必须是外表主键)。 外键作用: 使两张表形成关联,外键只能引用外表中的列的值!...主键 id 类型 int 创建含有外键的表: create table temp( id i
  • Mysql创建外键时,经常会遇到问题而失败,这是因为Mysql中还有很多细节需要我们去留意,查看大神的总结后列出了以下几种常见原因。 1. 两个字段的类型或者大小不严格匹配。例如,如果一个是int(10),那么外键也...

     

    在Mysql中创建外键时,经常会遇到问题而失败,这是因为Mysql中还有很多细节需要我们去留意,查看大神的总结后列出了以下几种常见原因。

    1.  两个字段的类型或者大小不严格匹配。例如,如果一个是int(10),那么外键也必须设置成int(10),而不是int(11),也不能是tinyint。另外,你还必须确定两个字段是否一个为 signed,而另一个又是unsigned(即:无符号),这两字段必须严格地一致匹配.

    2. 试图设置外键的字段没有建立起索引,或者不是一个primary key(主键)。如果其中一个不是primary key的话,你必须先为它创建一个索引。

    3. 其中一个或者两个表是MyISAM引擎的表。若想要使用外键约束,表必须是InnoDB引擎(实际上,如果两个表都是MyISAM 引擎的,这个错误根本不会发生,但也不会产生外键,只会建立索引)你需要检查表的引擎类型。

    4. 外键的名字不能重复。你应该检查你的数据库以确保外健名字是唯一的,或者你可以在键名后面加上几个随机的字符以测试是否是这个原因。

    5. 你可能设置了ON DELETE SET NULL,但是相关的键的字段又设置成了NOTS NULL值。你可能通过修改cascade的属性值或者把字段属性设置成allow null来解决。

    6. 请确定你的Charset和Collate选项在表级和字段级上的一致。

    7. 你可能设置为外键设置了一个默认值,如default=0。

    8. ALTER声明中有语法错误

     

    当出现错误时,仔细检查数据库表和字段的设计。建议大家尽量使用工具来设计和创建数据库,这样能减少出错的概率

    展开全文
  • 使用navicat for mysql 创建外键foreign keys时,总会自动创建索引indexs。如果删除这个索引就会提示错误error 1553:cann’t drop index…:needed in a foreign key constraint。请教各位,该如何解决呢,不想要...

    使用navicat for mysql 创建外键foreign keys时,总会自动创建索引indexs。如果删除这个索引就会提示错误error 1553:cann’t drop index…:needed in a foreign key constraint。请教各位,该如何解决呢,不想要indexs

    这个好像必须要吧 主键默认就带索引 这个索引对外键表没什么影响
    但是现在不想要这个索引,而且navicate for mysql自动生成的索引都是和外键字段相同
    但是现在不想要这个索引,而且navicate for mysql自动生成的索引都是和外键字段相同[/quote] 你不想要的理由是? 你吃去肯德基买汉堡 一个汉堡18元 现在有18元的套餐 是汉堡+薯条+可乐 买汉堡不卖套餐的理由是?
    Navicate会自动创建默认的索引, 一般关联到主键上, 但索引是可以修改的; 跟外键是没有任何关系的 ! 如果不想要的话, 你可以手动写sql语句
    挖个坟,我也遇到lz一样的问题,ls的比喻根本就不对,按你的比喻:“一个汉堡18元 现在有18元的套餐 是汉堡+薯条+可乐”,你这这里“薯条+可乐”比喻成索引,相当于白送的,这个当然好啦,可索引不是白送的啊,真像你说的那样索引白送的,有益无害,那所有的字段都弄索引好了。 都知道索引会增加物理存储空间,而且影响修改数据时的速度,有些外键其实也不用什么索引,真不懂为啥会自动生成
    不对 只要是外键 就一定得有索引 因为你要用它关联 你应该站在数据库的角度来看问题 如果你开发一个数据库 对于有关联的表 存储方式肯定不能像单一表一样 key一定也要有一个BTree去存 这个树 就是索引

    在这里插入图片描述

    展开全文
  • 当你试图在mysql创建一个外键的时候,这个出错会经常发生,这是非常令人沮丧的。像这种不能创建一个.frm 文件的报错好像暗示着操作系统的文件的权限错误或者其它原因,但实际上,这些都不是的,事实上,这个mysql...
  • 主要介绍了MySQL无法创建外键的原因及解决方法,然后在文中给大家及时了MySQL无法创建外键、查询外键的属性知识,感兴趣的朋友一起看看吧
  • 本篇文章是对MySQL创建外键关联错误-errno:150进行了详细的分析介绍,需要的朋友参考下
  • 本篇文章是对在MySQL创建外键时ERROR 1005的解决办法进行了详细的分析介绍,需要的朋友参考下
  • MySQL语法创建外键

    2021-01-26 20:04:37
    创建外键的语法如下-altertableyourSecondTableNameADDCONSTRAINTyourConstraintnameFOREIGNKEY(yourForeignKeyColumnName)referencesyourFirstTableName(yourPrimaryKeyColumnName);为了理解上述语法,让我们创建两...

    创建外键的语法如下-alter table yourSecondTableName ADD CONSTRAINT yourConstraintname FOREIGN KEY(yourForeignKeyColumnName)

    references yourFirstTableName (yourPrimaryKeyColumnName);

    为了理解上述语法,让我们创建两个表。创建第一个表的查询如下-mysql> create table Department_Table

    -> (

    -> Department_Id int not null auto_increment primary key,

    -> Department_Name varchar(30)

    -> );

    创建第二张表的查询如下-mysql> create table Employee_Table

    -> (

    -> EmployeeID int not null auto_increment primary key,

    -> EmployeeName varchar(80),

    -> Job varchar(30),

    -> Department_Id int not null references department(departmentID)

    -> );

    上面的Department_Id int而不是null引用department(departmentID)不会创建外键。现在,按照上述语法创建外键。

    查询如下-mysql> alter table Employee_Table ADD CONSTRAINT fk_Department_Id FOREIGN KEY(Department_Id)

    -> references Department_Table(Department_Id);

    Records: 0 Duplicates: 0 Warnings:

    展开全文
  • MySQL-创建外键约束 # constraint <外键名> foreign key 字段名 references <主表名> 主键列 create database mydb1 charset=utf8; use mydb1; # 创建部门表 create table if not exists department( ...
  • mysql 创建外键约束以及注意事项

    千次阅读 2021-12-06 10:48:33
    mysql 创建外键约束以及注意事项: 创建外键: 提示:这里描述项目中遇到的问题: 例如:数据传输过程中数据不时出现丢失的情况,偶尔会丢失一部分数据 APP 中接收数据代码: @Override public void run() { ...
  • MySQL创建外键约束语句

    千次阅读 2019-10-28 11:37:51
    create table teacher ( id int ...constraint fk_teacher 是给外键约束创建个名称 foreign key (tid) 是外键表student对应外键tid列 references teacher(id) 是主键表teacher对应的主键列id
  • MySQL外键创建方式

    千次阅读 2021-09-07 19:39:17
    MySQL外键创建方式 创建外键的两种方式: 方式一: 先创建两张单独的表,在对表约束进行修改,添加外键约束。 USE school; ALTER TABLE `student1` RENAME `student`; SHOW CREATE TABLE `student`; CREATE TABLE...
  • 外键创建问题总结 问题1: 创建的表的编码必须设置为innodb(sql输入完全没反应就是表的引擎错了) 问题2 创建的外键的id必须为其创建索引,主表和从表都是 问题3 创建的外键的字段主表和从表必须一致 我的创建外键...
  • Mysql添加外键

    千次阅读 2021-08-09 22:27:49
    ALTER声明中有语法错误 这是被参考表的字段设置 这是参考表的字段设置 这是创建外键的对应的语句 CREATE TABLE `student` ( `id` INT(3) UNSIGNED NOT NULL COMMENT '学生的id', `name` VARCHAR(5) NOT NULL ...
  • mysql 添加外键约束

    千次阅读 2022-07-28 17:46:23
    mysql添加常用约束
  • Mysql创建外键的四种方法

    千次阅读 2020-11-10 14:17:13
    创建主表: 班级 CREATE TABLE class(cid INT PRIMARY KEY AUTO_INCREMENT, sname VARCHAR(15) NOT NULL) 第一种://1.在属性值后面直接添加 CREATE TABLE student(sid INT AUTO_INCREMENT, sname VARCHAR(10) NOT ...
  • MySQL外键创建

    2021-11-16 23:54:46
    MySQL创建外键
  • 当我保存时提示错误“cannot add foreign key constraint”,不能成功创建外键约束。从网上搜了很多,主要有一下几种情况吧: 1)要关联的字段类型或长度不一致。 2)两个要关联的表编码不一样。 3)某个表已经有...
  • Mysql创建外键时,经常会遇到问题而失败,这是因为Mysql中还有很多细节需要我们去留意,我自己总结并查阅资料后列出了以下几种常见原因。 1. 两个字段的类型或者大小不严格匹配。例如,如果一个是int(10),...
  • 在复习mysql外键约束时创建表格:stu与grade,目标:grade的id随着student的id级联更新,且限制删除。 创建student表格: CREATE TABLE student ( id INT ( 8 ), NAME VARCHAR ( 20 ), department VARCHAR ( 20 ...
  • MySQL创建外键时,经常会遇到问题而失败,这是因为MySQL中还有很多细节需要我们去留意,我自己总结并查阅资料后列出了以下几种常见原因。1. 两个字段的类型或者大小不严格匹配。例如,如果一个是int(10),那么...
  • 我们可以在创建表时设置外键约束。在 CREATE TABLE 语句中,通过 FOREIGN KEY 关键字来指定外键,具体的语法格式如下:[CONSTRAINT ] FOREIGN KEY 字段名 [,字段名2,…]REFERENCES 主键列1 [,主键列2,…]举例:...
  • 主键:主键是一张表的唯一标识符,...外键创建外键是为了在数据表之间建立联系。一个外键一般而言在他自身的主表中是唯一的,我这里经常就使用主表的主键作为从表的外键。何谓主表,从表?user表中有字段idint1...
  • MySQL创建外键关联报错1005

    千次阅读 2018-09-28 17:31:03
    1.外键类型不对应 2.外键字符编码不对应 3.没有建立对应的索引 4.是否有重复主键 附上建立索引以及外键的语句(参考) ALTER TABLE country add INDEX index_name(emp_id) ALTER TABLE emp add INDEX index_...
  • mysql外键创建必须满足的4个条件

    千次阅读 2021-01-19 05:20:15
    一旦我们学习了MySQL的基础知识后,会...MySQL外键是在v3.23.34版本以后引入的,MySQL外键需要满足四个条件,才可使用。下文就对这四个条件进行详细介绍,供您参考。MySQL外键保证了数据库的参照完整性,但是MySQL外...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 153,257
精华内容 61,302
关键字:

mysql如何创建外键

mysql 订阅