精华内容
下载资源
问答
  • mysql数据建立主外键需要注意以下几点: 需要建立主外键关系的两个的存储引擎必须是InnoDB。 外键列和参照列必须具有相似的数据类型,即可以隐式转换的数据类型。 外键列和参照列必须创建索引,如果外键列...
  • 创建表1.如果是5.6以下timestamp(3)改为timestamp不然报错create table ACT_RE_MODEL ( ID_ varchar(64) not null, REV_ integer, NAME_ varchar(255), KEY_ varchar(255), CATEGORY_ varchar(255), CREATE_...

    创建表

    1.如果是5.6以下timestamp(3)改为timestamp不然报错

    create table ACT_RE_MODEL (
        ID_ varchar(64) not null,
        REV_ integer,
        NAME_ varchar(255),
        KEY_ varchar(255),
        CATEGORY_ varchar(255),
        CREATE_TIME_ timestamp(3) null, 
        LAST_UPDATE_TIME_ timestamp(3) null,
        VERSION_ integer,
        META_INFO_ varchar(4000),
        DEPLOYMENT_ID_ varchar(64),
        EDITOR_SOURCE_VALUE_ID_ varchar(64),
        EDITOR_SOURCE_EXTRA_VALUE_ID_ varchar(64),
        TENANT_ID_ varchar(255) default '',
        primary key (ID_)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;

    2.

    create table `t_import_excel` (
      `id` varchar(32) primary key not null comment '主键',
      `user_name` varchar(255) default null comment '员工名字',
      `start_date` varchar(255) default null comment '开始日期',
      `end_date` varchar(255) default null comment '结束日期',
      `start_time` datetime default null comment '开始时间',
      `end_time` datetime default null comment '结束时间',
      `year` varchar(255) default null comment '月',
      `remark` varchar(255) default null comment '备注',
      `is_modify` int(11) default null comment '修改备注:1=补开始日期与开始时间;2=补结束日期与结束时间;3=再次补结束日期与结束时间;'

    ) engine=innodb default charset=utf8mb4;

    创建索引

    create index ACT_IDX_EVENT_SUBSCR_CONFIG_ on ACT_RU_EVENT_SUBSCR(CONFIGURATION_);
    create index ACT_IDX_VARIABLE_TASK_ID on ACT_RU_VARIABLE(TASK_ID_);
    create index ACT_IDX_ATHRZ_PROCEDEF on ACT_RU_IDENTITYLINK(PROC_DEF_ID_);

    创建外键

    alter table information add constraint fk_1 foreign key (iname) references manage(mname);

    给表information的iname字段添加一个名为fk_1的外键约束,外键关联的主键表与字段分别为manage mname
    展开全文
  • 创建表 CREATE TABLE student( id INT(10) NOT NULL PRIMARY KEY, NAME VARCHAR(30) DEFAULT NULL, tid INT(10) DEFAULT NULL, KEY `fktid` (`tid`), CONSTRAINT `fktid` FOREIGN KEY(`tid`) REFERENCES `teacher` ...

    创建表

    CREATE TABLE student(
    id INT(10) NOT NULL PRIMARY KEY,
    NAME VARCHAR(30) DEFAULT NULL,
    tid INT(10) DEFAULT NULL,
    KEY `fktid` (`tid`),
    CONSTRAINT `fktid` FOREIGN KEY(`tid`) REFERENCES `teacher` (`id`)
    )ENGINE=INNODB DEFAULT CHARSET=utf8

    外键关联语句

    KEY `fktid` (`tid`),
    CONSTRAINT `fktid` FOREIGN KEY(`tid`) REFERENCES `teacher` (`id`)
    展开全文
  • MYSQL数据建立外键

    千次阅读 2019-01-08 00:51:17
    MySQL创建关联表可以理解为是两个之间有个外键关系,但这两个必须满足三个条件1.两个必须是InnoDB数据引擎2.使用在外键关系的域必须为索引型(Index)3.使用在外键关系的域必须与数据类型相似   例如: 1、...

    MySQL创建关联表可以理解为是两个表之间有个外键关系,但这两个表必须满足三个条件
    1.两个表必须是InnoDB数据引擎
    2.使用在外键关系的域必须为索引型(Index)
    3.使用在外键关系的域必须与数据类型相似

     

    例如:

    1、建立s_user表

    create table s_user(
           u_id int auto_increment primary key,
           u_name varchar(15),
           u_pwd varchar(15),
           u_truename varchar(20),
            u_role varchar(6),
           u_email varchar(30)
    )

    2、

    插入几条数据

    insert into s_user values
           (1,"wangc","aaaaaa","wangchao","buyer","wang@163.com"),
          (2,"huangfp","bbbbbb","huangfp","seller","huang@126.com"),
          (3,"zhang3","cccccc","zhangsan","buyer","zhang@163.com"),
          (4,"li4","dddddd","lisi","seller","li@1256.com")

    3、

    建立s_orderform表

    create table s_orderform(

              o_id int auto_increment primary key,
             o_buyer_id int,
             o_seller_id int,
             o_totalprices double,
             o_state varchar(50),
             o_information varchar(200),
             foreign key(o_buyer_id) references s_user(u_id),      #外链到s_user表的u_id字段
             foreign key(o_seller_id) references s_user(u_id)      #外链到s_user表的u_id字段
    )

    展开全文
  • 删除不是特别常用,特别是对于存在外键关联,删除更得小心。但是在开发过程中,发现Schema设计的有问题而且要删除现有的数据库中所有的来重新创建也是常有的事情;另外在测试的时候,也有需要重新创建数据库...
  • 中已有字段设置 外键 似乎不能设置为主键即使定义时没有定义主键也会报错 如 Multiple primary key defined 1。添加新字段 alter table 表名 add 字段名 字段描述; alter table student add phone varchar(20);...

    将表中已有字段设置 外键
    似乎不能设置为主键即使定义时没有定义主键也会报错 如
    Multiple primary key defined

    1。添加新字段
    alter table 表名 add 字段名 字段描述;

    alter table student add phone varchar(20);
    

    2。设置外键
    alter table 表名 add constraint 键名 foreign key(外键名) references 主表名(主表主键名)

    alter table grade add constraint g_id foreign key(g_id) references school(id)
    

    8.一对多关系
    1.设计表
    1.班级表
    create table classes(classid int primary key auto_increment,classname varchar(20));

    2.学生表
    create table student2(studentid int primary key auto_increment,studentname varchar(20) not null,classid int,foreign key(classid) references classes(classid))
    外键格式: foreign key(外键字段名) references 表名(关联字段名)

       classid班级id是外键,需要关联classes班级表的classid主健,  
    

    2.插入数据
    1.班级表
    insert into classes values(0,“py01”),(0,“py02”),(0,“py03”),(0,“java01”),(0,“h501”),(0,“ui01”),(0,“java02”),(0,“h502”),(0,“ui02”);
    2.学生表
    insert into student2 values(0,“张三”,4);
    insert into student2 values(0,“李四”,1);
    insert into student2 values(0,“王五”,1);
    insert into student2 values(0,“赵六”,2);
    insert into student2 values(0,“田七”,1);

    注意:如果关联的外键,而外键的值在关联的表中不存在,则无法成功插入
    error: insert into student2 values(0,“胖八”,11);

    3.多表查询数据
    1.需求: 查看所有的学生姓名及其所在的班级 ?
    例:
    select student2.studentname,classes.classname from student2,classes where student2.classid = classes.classid;
    注: 1.表名.字段名 可以指定到对应表中的某个字段,在多表联合查询的时候使用
    2.在多表联合查询的时候,from后面可以跟多个表
    2.需求2: 展示py01班所有的学生?
    select student2.studentname,classes.classname from student2,classes where student2.classid = classes.classid and classes.classid=1;
    3.需求3: 展示所有学生的所有信息?
    select student2.,classes. from student2,classes where student2.classid = classes.classid;
    4.连接关系查询
    1.内连接 inner join
    1.查询所有学生及姓名 ?
    select student2.studentname,classes.classname from student2 inner join classes on student2.classid = classes.classid;
    2.左外连接 left join
    select student2.studentname,classes.classname from classes left join student2 on student2.classid = classes.classid;
    3.右外连接 right join

    4.格式:  select .... from 表1 inner/left/right join 表2  on  条件;
    

    9.多对多
    1.设计表
    1.学生表
    create table student3(studentid int primary key auto_increment,studentname varchar(20) not null);
    2.课程表
    create table courses(coursesid int primary key auto_increment,coursesname varchar(20));
    3. 学生 —课程 表即选修课表
    create table elective(studentid int,coursesid int,primary key(studentid,coursesid),foreign key(studentid) references student3(studentid),foreign key(coursesid) references courses(coursesid));

    选修课

    2.插入数据
    插入学生:
    insert into student3 values(0,“张三”);
    insert into student3 values(0,“李四”);
    insert into student3 values(0,“王五”);
    insert into student3 values(0,“赵六”);
    insert into student3 values(0,“田七”);

    插入课程:

    insert into courses values(0,“python”);
    insert into courses values(0,“java”);
    insert into courses values(0,“h5”);
    insert into courses values(0,“ui”);

    插入选修课数据:
    insert into elective values(1,1);

    insert into elective values(1,2);
    insert into elective values(1,4);
    insert into elective values(3,1);
    insert into elective values(3,4);

    insert into elective values(1,1);
    注意:如果关联了外键,而外键的值在关联的表中不存在,则无法成功插入,

    3.查询数据
    查询学生的选修课
    select student3.*,courses.* from student3,courses,elective where student3.studentid = elective.studentid and courses.coursesid = elective.coursesid;

    mysql数据库。
    多表查询时
    select … from 表1 inner/left/right join 表2 on 条件;
    假设有班级表 学生表
    inner join 内联。查询数据为两表重合部分。即学生表外键关联了班级表的部分。 而学生表外键为空部分 班级表未被关联部分 不做为查询库
    left out join/left join 左外连接 即使表1 中没有外键关联 或者 被关联 也作为查询库。
    right out join/right join 右外连接 表2 中的数据作为查询库。同左外连接。

    展开全文
  • MySQL关联 & 外键

    千次阅读 2019-12-06 14:21:44
    简单来说,自关联就是自身进行比较查询,即 A inner join A on... 1.1、不用自关联         假设有三组数据(省,市,区),想要实现由省查市、由市查区,那么一...
  • MySQL表创建外键

    2020-07-16 21:56:32
    fk_goods_category外键描述,表示从商品表关联到分类 foreign key(cid)当前goods商品中的cid字段作为了外键 references关联参照 category(cid)当前中的外键cid去关联的是分类中的主键cid */ CONSTRAINT fk_...
  • 命令:altertable需加外键的表addconstraint外键名foreignkey(需加外键表的字段名)referencnes关联表名(关联字段名); 注意:外键名不能重复
  • mysql外键+两表关联

    2021-01-01 22:14:43
    mysql外键+两表关联 说明: 一般情况下,开发过程中是不建立外键创建员工部门为例 第一种方式 建表的时候指明外键 -- 创建部门 create table dept( id int primary key auto_increment, -- 部门编号 name...
  • 在多方中,创建一个新的字段,作为当前外键,指向一方的主键 注意点: 一对多, 外键设置在多方 一张表关联多张表,通过 foreign key (字段名) references 关联的表名(字段) 模拟一对多 一对多的结构设计,两...
  • 当你试图在mysql创建一个外键的时候,这个出错会经常发生,这是非常令人沮丧的。像这种不能创建一个.frm 文件的报错好像暗示着操作系统的文件的权限错误或者其它原因,但实际上,这些都不是的,事实上,这个mysql...
  • 用Navicat for mysql创建表,在设置外键的时候,删除时和更新时两列有四个值可以选择:CASCADE、NO ACTION、RESTRICT、SET NULL CASCADE、NO ACTION、RESTRICT、SET NULL区别如下: CASCADE:父delete、update...
  • 创建了三个,其中一个中间进行关联,但是在新架构设计器看,发现他们并没有关联在一起. 解决: 1. 检测语法,发现没有问题 2. 百度找,说是引擎的原因查了一下 SHOWVARIABLES LIKE '%storage_engine%'; 3. 发现如图 ...
  • MySQL删除具有外键关联

    千次阅读 2019-03-11 20:25:01
    MySQL删除的时候忽略外键约束  删除不是特别常用,特别是对于存在外键关联,删除更得小心。但是在开发过程中,发现Schema设计的有问题而且要删除现有的数据库中所有的来重新创建也是常有的事情;另外在...
  • MYSQL添加外键关联

    2018-08-01 15:23:00
    SELECT * from stu st,course...如果我们要给 sid 做一个约束,即两张中的 sid 要一一对应,所以我们要添加外键 score 关联 stu: 此时,更改score 中 sid 的值,因为此处的sid 必须与 stu 中的sid对应,stu 中没...
  • Mysql添加外键约束

    千次阅读 2018-08-15 18:25:26
    ·添加外键约束:altertable从addconstraint外键(形如:FK_从_主)foreignkey(从表外键字段)references主(主键字段); 如果mysql报错:Error Code: 1215. Cannot add foreign key constraint (foreign keys) ...
  • 4.在进行外键关联的时候,如果关联的主键是由多列组合而成的,那么在进行外键约束的时候由括号中的两部分一起 另外,需要注意外键名不能重复,故在进行外键命名时,比如t2和t1进行外键关联,则命名为fk_t2_t1,...
  • 关联2张表时出现了无法创建外键的情况,从这个博客看到,问题出在第六点的Charset和Collate选项在级和字段级上的一致性上。我的2张表的编码charset和collate不一致,2张表都执行执行SQL语句: alter table 表名 ...
  • 表创建主键 外键 创建表时 以创建user为例 : create table user( id int PRIMARY KEY auto_increment, name VARCHAR(20), age int, birthday date, dept_id int, constraint emp_deptid_fk foreign key(dept_id...
  • 今天在给mysql创建表时,总是报错: 后来了解到,一个数据库中,外键必须唯一,找出整个数据库中重复外键的方法: select TABLE_SCHEMA, TABLE_NAME from information_schema.KEY_COLUMN_USAGE where ...
  • MySQL创建外键的两种方式

    万次阅读 多人点赞 2019-02-19 10:55:21
    使用MySQL关联数据时,创建外键的两种方式:创建表时增加外键,已存在增加外键。以下案例通过Navicat for MySQL实现。 1.创建表时增加外键 首先创建第一张被关联表Vendors商品供应商。 -- 供应商列表 ...
  • 在开发中,我们使用PowerDesigner建立物理数据模型时,为了结构的清晰,增加可读性,会创建表之间的关联关系。  在实际开发中,数据库中一般不会存在外键,阿里的开发手册中也强制不使用外键与级联操作,一切...
  • MySQL外键关联操作

    2020-10-07 22:02:31
    目录 文章目录目录MySQL外键约束创建表时定义外键(References,参照)...注:MySQL 的 InnoDB 引擎才支持外键关联,MyISAM 不支持。 创建表时定义外键(References,参照) 在 CREATE TABLE 语句中,通过 FOREI
  • 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_...
  • 1.创建department  create table department(  id int primary key,  director varchar(50) not null,  area varchar(50) check('南湖...2.创建classes,并为department_id属性创建外键关联 create tab...
  • mysql创建表时添加外键约束产生Cannot add foreign key constraint 例如创建了user(user_id pk)和role(role_id pk),当创建user_role(user_id fk,role_id fk)关联表的时候就出现问题。 1.所添加外键必须是另一...
  • 在开发中,我们使用PowerDesigner建立物理数据模型时,为了结构的清晰,增加可读性,会创建表之间的关联关系。  在实际开发中,数据库中一般不会存在外键,阿里的开发手册中也强制不使用外键与级联操作,一切...
  • MySQL添加外键约束

    万次阅读 2017-07-12 23:43:55
    添加外键约束的语法 Alter table 表名 add constraint FK_ID foreign key(外键字段名) REFERENCES 外表表名(主键字段名);为student添加外键约束执行成功后,使用DESC来查看学生和班级 可以看出,grade...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 44,241
精华内容 17,696
关键字:

mysql创建表关联外键

mysql 订阅