精华内容
下载资源
问答
  • mysql创建主外键关联
    2021-02-08 03:20:12

    mysql主主外键建立:

    (1)、确保参照的表和字段是存在的

    (2)、关联表必须是Innodb存储类型

    (3)、必须设置主关联表主键

    (4)、主键与外键数据类型和字符编码(unsigned)必须一致

    (5)、确保以上声明的句法是正确的

    附:mysql建立表默认类型为:MYISAM

    如果要改变默认表类型可在my.inf中加:default_storage_engine=INNODB

    创建加外键表SQL语句示例:

    主表:

    CREATE TABLE `building_info` (

    `BuildingID` int(4) unsigned NOT NULL AUTO_INCREMENT,

    `BuildingName` varchar(50) NOT NULL DEFAULT '',

    `BuildingDesc` varchar(100) DEFAULT '',

    PRIMARY KEY (`BuildingID`)

    ) ENGINE=InnoDB DEFAULT CHARSET=gb2312;

    外键表(关联字段:BuildingID):

    CREATE TABLE `floor_info` (

    `FloorID` int(4) unsigned NOT NULL AUTO_INCREMENT,

    `BuildingID` int(4) unsigned NOT NULL DEFAULT '0',

    `FloorName` varchar(50) NOT NULL DEFAULT '',

    `FloorIndex` int(4) NOT NULL DEFAULT '0',

    PRIMARY KEY (`FloorID`),

    --KEY `Floor_Info_FK_BuildingID` (`BuildingID`),

    constraint `Floor_Info_FK_BuildingID` foreign key (BuildingID) references  BUILDING_INFO(BuildingID)

    ) ENGINE=InnoDB DEFAULT CHARSET=gb2312;

    附:还可以建立好了表再创建索引:

    例:alter table FLOOR_INFO add constraint `Floor_Info_FK_ BuildingID` foreign key (FloorID) references  BUILDING_INFO(FloorID);

    更多相关内容
  • 匿名用户1级2018-06-03 回答13.1.2. ALTER TABLE语法 ALTER [IGNORE] TABLE tbl_name alter_specification [, alter_specification] ... alter_specification: ADD [COLUMN] column_definition [FIRST | AFTER col_n...

    匿名用户

    1级

    2018-06-03 回答

    13.1.2. ALTER TABLE语法 ALTER [IGNORE] TABLE tbl_name alter_specification [, alter_specification] ... alter_specification: ADD [COLUMN] column_definition [FIRST | AFTER col_name ] | ADD [COLUMN] (column_definition,...) | ADD INDEX [index_name] [index_type] (index_col_name,...) | ADD [CONSTRAINT [symbol]] PRIMARY KEY [index_type] (index_col_name,...) | ADD [CONSTRAINT [symbol]] UNIQUE [index_name] [index_type] (index_col_name,...) | ADD [FULLTEXT|SPATIAL] [index_name] (index_col_name,...) | ADD [CONSTRAINT [symbol]] FOREIGN KEY [index_name] (index_col_name,...) [reference_definition] | ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT} | CHANGE [COLUMN] old_col_name column_definition [FIRST|AFTER col_name] | MODIFY [COLUMN] column_definition [FIRST | AFTER col_name] | DROP [COLUMN] col_name | DROP PRIMARY KEY | DROP INDEX index_name | DROP FOREIGN KEY fk_symbol | DISABLE KEYS | ENABLE KEYS | RENAME [TO] new_tbl_name | ORDER BY col_name | CONVERT TO CHARACTER SET charset_name [COLLATE collation_name] | [DEFAULT] CHARACTER SET charset_name [COLLATE collation_name] | DISCARD TABLESPACE | IMPORT TABLESPACE | table_options | partition_options | ADD PARTITION partition_definition | DROP PARTITION partition_names | COALESCE PARTITION number | REORGANIZE PARTITION partition_names INTO (partition_definitions) | ANALYZE PARTITION partition_names | CHECK PARTITION partition_names | OPTIMIZE PARTITION partition_names | REBUILD PARTITION partition_names | REPAIR PARTITION partition_names PRIMARY KEY 和 FOREIGN KEY 自己看手册,丰衣足食

    展开全文
  • [数据库]MySQL创建数据表并建立主外键关系0 2018-07-04 01:01:25为mysql数据表建立主外键需要注意以下几点:需要建立主外键关系的两个表的存储引擎必须是InnoDB。外键列和参照列必须具有相似的数据类型,即可以隐式...

    [数据库]MySQL创建数据表并建立主外键关系

    0 2018-07-04 01:01:25

    为mysql数据表建立主外键需要注意以下几点:

    需要建立主外键关系的两个表的存储引擎必须是InnoDB。

    外键列和参照列必须具有相似的数据类型,即可以隐式转换的数据类型。

    外键列和参照列必须创建索引,如果外键列不存在索引,mysql将自动创建索引。

    一、SQL语句创建数据表并设置主外键关系create table demo.ChineseCharInfo( ID int not null auto_increment, Hanzi varchar(10) not null, primary key (ID))engine=innodb auto_increment=1 default charset=utf8 collate=utf8_general_ci; create table demo.ChinesePinyinInfo( ID int not null auto_increment, CharID int null, Pinyin varchar(10) null, Tone tinyint unsigned null, primary key (ID), -- 方式一:不指定外键名称,数据库自动生成 foreign key (CharID) references ChineseCharInfo(ID) on delete cascade on update cascade -- 方式二:指定外键名称为(FK_Name) -- constraint FK_Name foreign key (CharID) references ChineseCharInfo(ID) on delete cascade on update cascade )engine=innodb auto_increment=1 default charset=utf8 collate=utf8_general_ci;

    二、当数据表已经存在时,就要使用下面的方法建立主外键关系-- 为表(demo.ChinesePinyinInfo)中字段(CharID)添加外键,并指定外键名为(FK_Name)alter table demo.ChinesePinyinInfo add constraint FK_Name foreign key (CharID) references ChineseCharInfo(ID);-- 为表(demo.ChinesePinyinInfo)中字段(CharID)添加外键,不指定外键名,由数据库自动生成外键名alter table demo.ChinesePinyinInfo add foreign key (CharID) references ChineseCharInfo(ID);

    三、删除主外键约束-- 通过修改列的属性来删除自增长,第一个(ID)为原列名,第二个(ID)为新列名alter table demo.ChinesePinyinInfo change ID ID int not null;-- 删除表(demo.ChinesePinyinInfo)中的主键约束,如果主键列为自增列,则需要先删除该列的自增长alter table demo.ChinesePinyinInfo drop primary key; -- 删除表(demo.ChinesePinyinInfo)中的名称为(FK_Name)的外键alter table demo.ChinesePinyinInfo drop foreign key FK_Name;

    四、主外键关系的约束

    如果子表试图创建一个在主表中不存在的外键值,数据库会拒绝任何insert或update操作。

    如果主表试图update或者delete任何子表中存在或匹配的外键值,最终动作取决于外键约束定义中的on delete和on update选项。

    on delete和on update都有下面四种动作。cascade:主表删除或更新相应的数据行,则子表同时删除或更新与主表相匹配的行,即级联删除、更新。set null:主表删除或更新相应的数据和,则子表同时将与主表相匹配的行的外键列置为null。当外键列被设置为not null时无效。no action:数据库拒绝删除或更新主表。restrict:数据库拒绝删除或更新主表。如果未指定on delete或on update的动作,则on delete或on update的默认动作就为restrict。

    本文网址:http://www.shaoqun.com/a/354768.html

    *特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:admin@shaoqun.com。

    MYSQL

    0

    展开全文
  • mysql外键关联

    千次阅读 2021-02-01 21:28:32
    主键:是唯一标识一条记录,不能有重复的,不允许为空,用来...创建外键的方式:方式一:表已经创建好了,继续修改表的结构来添加外键,代码如下:create table student(id int primary key auto_increment,name c...

    主键:是唯一标识一条记录,不能有重复的,不允许为空,用来保证数据完整性

    外键:是另一表的主键, 外键可以有重复的, 可以是空值,用来和其他表建立联系用的。所以说,如果谈到了外键,一定是至少涉及到两张表。

    创建外键的方式:

    方式一:表已经创建好了,继续修改表的结构来添加外键,代码如下:

    create table student(

    id int primary key auto_increment,

    name char(32) not null,

    sex char(32)

    );

    create table class(

    id int primary key auto_increment,

    name char(32) not null,

    age int,

    dept_id int

    );

    在上述的俩个已经创建好的表中,添加外键:

    alter table class add foreign key(dept_id) references student(id)

    alter table class:在从表class中进行操作;

    add foreign key (dept_id):将从表的字段dept_id添加为外键;

    references student(id):映射到主表studentt当中为id的字段

    方式一:在创建表的时候增加外键,代码如下create table student(

    id int primary key auto_increment,

    name char(32) not null,

    sex char(32)

    );

    create table class(

    id int primary key auto_increment,

    name char(32) not null,

    age int,

    dept_id int

    constraint FK_id foreign key(dept_id) references student(id) );格式:[CONSTRAINT symbol] FOREIGN KEY [id] (从表的字段1) REFERENCES tbl_name (主表的字段2)

    CONSTRAINT symbol:可以给这个外键约束起一个名字,有了名字,以后找到它就很方便了。如果不加此参数的话,系统会自动分配一个名字。

    FOREIGN KEY:将从表中的字段1作为外键的字段。

    REFERENCES:映射到主表的字段2。

    删除外键:

    alter table student drop foreign key 外键名;

    展开全文
  • MySQL外键关联操作

    千次阅读 2022-03-25 16:24:30
    注意,MySQL 的 InnoDB 表引擎才支持外键关联,MyISAM 不支持。MySQL 还支持手动打开或关闭外键约束:SET FOREIGN_KEY_CHECKS = 0/1;。 使用外键约束最大的好处在于 MySQL 帮助我们完成数据的一致性检查。当我们...
  • 当 你试图在mysql创建一个外键的时候,这个出错会经常发生,这是非常令人沮丧的。像这种不能创建一个.frm 文件的报错好像暗示着操作系统的文件的权限错误或者其它原因,但实际上,这些都不是的,事实上,这个mysql...
  • 使用navicat创建MySQL外键关联

    千次阅读 2020-12-22 14:27:14
    要在Mysql数据库平台建立外键关联,必须满足以下几个条件:1.两个表必须为 InnoDB 类型。2. 外键和被引用键必须是索引中的第一列,InnoDB 不会自动为外键和被引用键建立索引,必须明确创建它们。3. 外键与对应的被...
  • 主要介绍了MySQL创建数据表并建立主外键关系详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • 有一个东西一直在我脑海中是个很烦的东西,但是这东西不搞清楚会阻碍自己的前进。...首先我么要搞明白,为什么要使用外键,比如有两张表(在最下面我会附上表的创建SQL语句,以及外键的添加和关联删除时候的语句...
  • 要求将满足某个条件的表和相关联的几个子表的数据全部删除,其实这个要求很简单,如果子表在创建外键的时候指定了ON DELETE CA条件:p(父表)没有ON DELETE CASCADEc(子表)mysql> delete a,b from p a,c b where...
  • MySQL 创建主键,外键和复合主键的方法,需要的朋友可以参考下。1.创建主键语法ALTER TABLE table_name ADD CONSTRAINT pk_name PRIMARY KEY(列名);2.创建外键语法ALTER TABLE news_info[子表名] ADD CONSTRAINT FK_...
  • MySQL删除具有外键关联的表

    千次阅读 2019-03-11 20:25:01
     删除表不是特别常用,特别是对于存在外键关联的表,删除更得小心。但是在开发过程中,发现Schema设计的有问题而且要删除现有的数据库中所有的表来重新创建也是常有的事情;另外在测试的时候,也有需要重新创建...
  • mysql外键约束的写法:“CREATE TABLE 表名(FOREIGN KEY 字段名 REFERENCES 表名 主键列)”。(推荐教程:mysql视频教程)mysql主键约束主键(PRIMARY KEY)的完整称呼是“主键约束”,是 MySQL 中使用最为频繁的约束...
  • MySQL是开源免费的数据库软件,是一款很优秀的软件,作为我们的学生或者科研人员在开发软件的时候,最好用也是最省钱的。所以MySQL学好是至关重要的!SQL语言包含4个部分:※数据定义语言(DDL),例如:CREATE、DROP...
  • MySQL外键创建方式

    千次阅读 2021-09-07 19:39:17
    MySQL外键创建方式 创建外键的两种方式: 方式一: 先创建两张单独的表,在对表约束进行修改,添加外键约束。 USE school; ALTER TABLE `student1` RENAME `student`; SHOW CREATE TABLE `student`; CREATE TABLE...
  • mysql主外键关系

    2021-01-18 18:23:31
    一、外键:1、什么是外键2、外键语法3、外键的条件4、添加外键5、删除外键1、什么是外键:主键:是唯一标识一条记录,不能有重复的,不允许为空,用来保证数据完整性外键:是另一表的主键, 外键可以有重复的, 可以是...
  • Mysql创建外键约束的两种方式

    千次阅读 2021-02-04 16:31:04
    通过给mysql的表字段添加外键约束,可以有效的保持数据的一致性和完整性,数据就不会很容易出问题。1、创建表时直接创建外键约束create table books(bookid number(10) not null primary key,bookName varchar2(20) ...
  • 介绍一种方法,解决如下问题:如何同时删除两张相关联的表的记录。 比如说表a的外键fk依赖于表a的id,现在我们需要删除id=5的两条数据。 2. 主要方法 为了简单,推荐更改表a的外键设置,设置删除时策略为CASCADE 如...
  • 第一,是外键关联的字段类型长度要一致。 第二,是所有tables必须是InnoDB型,它们不能是临时表.因为在MySQL中只有InnoDB类型的表才支持外键(两张表的存储引擎一致)。 第三,设置外键时“删除时”设置为“SET ...
  • MySQL 视图、索引、外键关联策略

    千次阅读 2020-05-30 11:29:12
    目录视图索引外键关联策略   视图 视图是一张虚表,将查询结果集保存起来,作为视图使用。实际存在的表叫作基本表。   视图的作用 提高安全性。grant授权用户只能操作视图,通过视图来操作基本表,可以...
  • mysqlmysql主外键关系(详细精讲)

    千次阅读 多人点赞 2016-11-25 00:16:02
    mysqlmysql主外键关系(详细精讲) 作者:yjqyyjw 一、外键: 1、什么是外键 2、外键语法 3、外键的条件 4、添加外键 5、删除外键 1、什么是外键: 主键:是唯一标识一条记录,不能有重复...
  • MySQL的主键和外键

    千次阅读 2021-02-04 14:45:16
    概念表能够通过某个字段唯一区分出...MySQL主键不应包含动态变化的数据,如时间戳、创建时间列、修改时间列等主键设计的常用方案是自增ID。因为整数通常是主键的最好选择,因为它很快且可以使用AUTO_INCREAMENT,如...
  • 一、外键:1、什么是主键外键:主键:是唯一标识一条记录,不能有重复的,不允许为空,用来保证数据完整性。外键:是另一表的主键, 外键可以有重复的, 可以是空值,用来和其他表建立联系用的。所以说到了外键,一定...
  • 说个题外话,我从来没想过会被拼多多这款软件所魔怔,他的这种社交营销的能力,实在是太强了,在怂恿之下,开始给儿子拼个这个,...》,很有感触,在Oracle中,主外键关系,是看似简单,实则蕴含着很多的知识。和...
  • sql语句创建外键关联

    千次阅读 2021-01-29 10:26:47
    创建学生教师表为例: 学生 id 关联教师 tid 学生表: student 教师表: teacher sql语句 : USE school; CREATE TABLE student( id INT(10) NOT NULL PRIMARY KEY, NAME VARCHAR(30) DEFAULT NULL, tid INT(10) ...
  • Mysql基础增删改查,主外键关联

    万次阅读 2021-01-07 16:27:28
    章节导航Mysql基础入门创建新增删除修改查询数据类型主键外键数值计算关联查询 1.登录mysqlmysql -uroot -p 2.使用数据库: use 数据库名; 3.导入sql文件: souse 目录; 4.各个关键字的顺序:select 字段信息 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 34,341
精华内容 13,736
关键字:

mysql创建主外键关联

mysql 订阅