精华内容
下载资源
问答
  • 对有主外键约束表数据的操作

    千次阅读 2007-08-08 18:03:00
    却没发现原来数据库中对这种键的约束有个属性可以修改修改后,删除主键数据,随之匹配的外键表数据会自动删除。在默认设置中,此项是不打开的,如图:具体操作:在外键约束单击右键,选择“Modify”,弹出外键...

    今天同事,在做某一个功能时候,需要对某个具有主键约束的表进行更新、删除操作,按照原有一般情况下的做法会是:先删除外键表的数据,再删除主键表数据。却没发现原来数据库中对这种键的约束有个属性可以修改,修改后,删除主键表的数据,随之匹配的外键表数据会自动删除。在默认设置中,此项是不打开的,如图:

    具体操作:

    在外键约束单击右键,选择“Modify”,弹出外键属性对话框,如图选择

    ,点击“Close”。至于下拉列表其他选项意思为:Set Null 设置为Null;Set Default设置为默认值。

    展开全文
  • MySQL 修改被外键约束的列

    千次阅读 2018-11-16 22:41:42
    mysql提供了一个方法,临时关闭外键约束,当修改完成之后再将外键约束加回来。 讲你需要的操作放在两个语句之间: SET FOREIGN_KEY_CHECKS = 0; /* DO WHAT YOU NEED HERE */ SET FOREIGN_KEY_CHECKS = 1; ...
    • 那么我们必须修改怎么办?可以先取消外键,修改完后再加回来。当然这也是可以的,虽然比较费事。

    • mysql提供了一个方法,临时关闭外键约束,当修改完成之后再将外键约束加回来。
      讲你需要的操作放在两个语句之间:

        SET FOREIGN_KEY_CHECKS = 0;
        /* DO WHAT YOU NEED HERE */
        SET FOREIGN_KEY_CHECKS = 1;
      
    展开全文
  • mysql的外键约束级联修改和删除整理

    千次阅读 2014-05-14 00:15:41
    外键约束对子的含义:   如果在父中找不到候选键,则不允许在子上进行insert/update  外键约束对父的含义:   在父上进行update/delete以更新或删除在子中有一条或多条对应匹配行的候选键时,父...

    这里先把从别处找来的资料放到这里,然后再总结下需要注意的地方

    InnoDB中对外键约束定义的语法看起来如下:

    [CONSTRAINT symbol] FOREIGN KEY [id] (index_col_name, ...)

        REFERENCES tbl_name (index_col_name, ...)

        [ON DELETE {RESTRICT | CASCADE | SET NULL | NO ACTION}]

        [ON UPDATE {RESTRICT | CASCADE | SET NULL | NO ACTION}]

    外键定义服从下列情况:

             ·  所有tables必须是InnoDB型,它们不能是临时表。

             ·  在引用表中,必须有一个索引,外键列以同样的顺序被列在其中作为第一列。这样一个索引如果不存在,它必须在引用表里被自动创建。

             ·  在引用表中,必须有一个索引,被引用的列以同样的顺序被列在其中作为第一列。

             ·  不支持对外键列的索引前缀。这样的后果之一是BLOB和TEXT列不被包括在一个外键中,这是因为对这些列的索引必须总是包含一个前缀长度。

             ·  如果CONSTRAINT symbol被给出,它在数据库里必须是唯一的。如果它没有被给出,InnoDB自动创建这个名字。

    其中tbl_name被称作为父表,定义外键的表被称作为子表。

    外键约束对子表的含义: 

      如果在父表中找不到候选键,则不允许在子表上进行insert/update(即默认情况下(RESTRICT下),定义了外键以后就不能对子表进行删除和修改操作) 

    但是实际开发中,我们想要做的是更新父表的数据,同时更新子表相关数据,删除父表数据后,可能需要对子表进行set null置空操作,那么先来看看外键约束对父表的含义吧:

      在父表上进行update/delete以更新或删除在子表中有一条或多条对应匹配行的候选键时,父表的行为取决于:在定义子表的外键时指定的on update/on delete子句, InnoDB支持5种方式, 分列如下 

      
      . cascade方式 
       在父表上update/delete记录时,同步update/delete掉子表的匹配记录 
       On delete cascade从mysql3.23.50开始可用; on update cascade从mysql4.0.8开始可用 

      . set null方式 
       在父表上update/delete记录时,将子表上匹配记录的列设为null 
       要注意子表的外键列不能为not null 
       On delete set null从mysql3.23.50开始可用; on update set null从mysql4.0.8开始可用 

      . No action方式 
       如果子表中有匹配的记录,则不允许对父表对应候选键进行update/delete操作 
       这个是ANSI SQL-92标准,从mysql4.0.8开始支持 

      . Restrict方式 
       同no action, 都是立即检查外键约束 

      . Set default方式 
       解析器认识这个action,但Innodb不能识别,不知道是什么意思... 
      
      注意:trigger不会受外键cascade行为的影响,即不会解发trigger 

    在mysql中,与SQL标准相违背的三点 
    1.       如果在父表中有多个key值相同,那么在进行外键check时,会当成有相同key值的其他行不存在; 比如当定义了一个restrict行为外键时,一个子表行对应到多个父表行(具有相同key值), Innodb不允许删除父表上的所有这些行 

    2.       父子表是同一个表,自我参照时不允许指定on update cascade, on update set null 
    从mysql4.0.13开始,允许同一个表上的on delete set null 
    从mysql4.0.21开始,允许同一个表上的on delete cascade 
    但级联层次不能超出15 

    3, Innodb在检查unique,constraint约束时,是row by row而不是语句或事务结束; 

      SQL标准中对constraint的检查是在语句执行完成时 

    理论讲完以后,我来举个简单的例子:

    父表的创建语句如下:


     CREATE TABLE `test` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `name` varchar(244) DEFAULT NULL,
      PRIMARY KEY (`id`),
      KEY `name` (`name`),
      CONSTRAINT `test_ibfk_1` FOREIGN KEY (`name`) REFERENCES `use2` (`name`) ON D
    ELETE SET NULL ON UPDATE CASCADE
    ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8


    子表创建语句如下:

    //这个是子表,子表name字段必须是索引,参见上面的规则
     CREATE TABLE `user` (
      `name` varchar(244) NOT NULL,
      `gender` enum('male','female') NOT NULL,
      PRIMARY KEY (`name`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8


    这里需要注意的两点:

    ①如果主表想使用on delete set null ,则外键字段必须在子表中设置的为null(刚开始的时候一直不知道哪里出错,搞了半天。。)

    ②父表设置on update cascade表示只要父表更新,子表相应字段也要更新,所以这就要求,父表和子表这两个字段的数据类型和长度必须保持一致,否则会出错的

    ③默认情况下是严格方式,说通俗点就是子表中一旦有对应的数据和父表相对应,则父表相应的数据就不能做删除和更新操作了

    其实这些理解到了以后,外键的约束这个知识点基本上没什么问题了



    展开全文
  • 外键约束

    2020-06-15 10:22:08
    外键约束 概念: ​ 对外键列值进行限定,如果这一列有值的话,只能是主中主键列已经存在的值。 ​ ①在创建的同时添加 ​ create table 表名( ​ 列名 数据类型, ...​ ③在创建后添加外键约束 ​ alter

    外键约束

    概念:

    ​ 对外键列值进行限定,如果这一列有值的话,只能是主表中主键列已经存在的值。
    ​ ①在创建表的同时添加
    ​ create table 表名(
    ​ 列名 数据类型,
    ​ 列名 数据类型,
    ​ …
    ​ constraint 约束名 foreign key(外键列名) references 主表的表名(主表中主键列名)
    ​ );
    ​ ②删除外键约束
    ​ alter table 表名 drop foreign key 约束名
    ​ ③在表创建后添加外键约束
    ​ alter table 表名 add constraint 约束名 foreign key(外键列名) references 主表的表名(主表中主键列名)

    表与表之间的关系

    ​ 一对一
    ​ 建表原则:唯一外键,在任意一方添加一列作为外键,给外键添加唯一约束
    ​ 一对多
    ​ 建表原则:在多的一方添加一列作为外键,指向一的一方主键
    ​ 操作原则:
    ​ 添加数据:先添加一的一方,再添加多的一方
    ​ 删除数据:先删除多的一方,再删除一的一方
    ​ 多对多
    ​ 建表原则:需要创建一张中间表,这张表中至少包含两个字段,分别作为外键,指向多对多双方的主键。

    多表查询分类:

    ​ 1. 内连接
    ​ 显式内连接(显式的使用了inner join 关键字)
    ​ select 字段列表 from 表1 [inner] join 表2 on 关联条件
    ​ 隐式内连接(没有使用inner join 关键字)
    ​ select 字段列表 from 表1,表2 where 关联条件
    ​ 内连接查询的结果
    ​ 查询是多张表中满足关联条件的数据
    ​ 2. 外连接
    ​ 左外连接
    ​ select 字段列表 from 表1 left outer join 表2 on 关联条件
    ​ 查询结果: 查询的是左表的全部,以及右表中满足关联条件的数据
    ​ 右外连接
    ​ select 字段列表 from 表1 right outer join 表2 on 关联条件
    ​ 查询结果: 查询的是右表的全部,以及左表中满足关联条件的数据
    子查询
    ​ 概念:
    ​ select语句的嵌套,被嵌套的select语句被称之为子查询
    ​ 子查询的结果:
    ​ 单行单列的
    ​ 对子查询的结果进行单值判断
    ​ 多行单列的
    ​ 结合in关键字使用
    ​ 多行多列的
    ​ 将查询结果当成表来使用,这张表没有名字,所以必须给它起别名

    自关联查询
    一张表中的不同列有关联关系,需要将一张表当成多张表(起不同的别名即可)

    视图
    将复杂查询的结果,当成一张虚拟表
    好处:
    1. 简化查询操作
    2. 提升安全
    视图创建语法
    create view 视图名称[(视图中字段列表)] as 查询语句

    	注意:
    		1.如果不指定视图中的字段列表,必须保证查询语句的结果中不存在重复列名,否则会直接报错。
    		2.如果要自己指定视图中的列名,那么列名的个数必须和查询结果集中的列名个数一致。
    删除视图
    	drop view [if exists] 视图名称;
    修改视图的结构
    	alter view 视图名称[(视图中字段列表)] as 查询语句
    


    存储引擎
    数据库服务器中存储和管理数据的核心

    mysql存储引擎的特点:
    	是插件式的,针对不同的应用场景,可以选择不同的存储引擎
    
    有哪些常见的存储引擎:
    	InnoDB
    	MyISAM
    	Memory
    	
    查询数据库支持的存储引擎
    	SHOW ENGINES;
    查看指定数据库中所有表的存储引擎
    	SHOW TABLE STATUS FROM 数据库名
    查看指定数据库中指定表的存储引擎
    	SHOW TABLE STATUS FROM 数据库名 WHERE name='表名'
    创建表时指定存储引擎
    	create table 表名(
    		字段列表
    	)engine=存储引擎;
    	
    表已经存在后修改存储引擎
    	ALTER TABLE 表名 ENGINE = INNODB;
    
    索引

    索引的创建
    	给指定列创建普通索引
    		create index 索引名 on 表名(列名)
    	给指定列创建唯一索引
    		create uniuqe index 索引名 on 表名(列名)
    	查看某张表的索引
    		show index from 表名
    通过alter表的语法添加索引
    	
    删除索引
    	drop index 索引名  on  表名
    
    1. 索引的概念
    是一种用于快速检索的数据结构
    主要作用就是提升查询效率(速度,IO次数)
    另外还要知道,mysql存储引擎除了维护数据,还要维护索引这个数据结构,通常情况下索引是存储在硬盘上的。
    
    2. 怎么理解所谓的数据库的索引就类似于书的目录?
    	每本书都有目录,增加了几页纸,书的厚度变了,但是找对应的文章是不是更快了。
    	一句话:空间换时间思想!
    	
    3.有哪些常见的数据结构,为什么最终要选择B+Tree数据结构
    	a)hash表
    		占用内存可能过高
    		不适合进行范围查询
    	b)二叉树
    		如果索引值是线性增长的(比如自增主键),二叉树可能退化成链表,跟全表扫描的效果一样
    	c)平衡二叉树
    		相较于二叉树有了平衡的功能,不会退化成单向链表,但是由于一个节点上只有一个值,两个分叉,如果数据量非常大的话,树的高度会很高
    			一个磁盘块中所存放的内容过少
    			进行查找的时候,可能要读取很多个磁盘块,造成IO次数过多
    	d)BTREE
    		一颗树,既然纵向上不能太高,所以只能在横向上来做文章了。BTree这种结构一个节点上可以存放多个索引元素,这样树的分叉会变多,最终树的高度就会降低。肯定会减少磁盘IO次数。
    		BTREE有个特点是数据也在节点上。
    	5)B+TREE
    		B+TREE是BTREE数据结构的变种,为什么MySQL要选择它。它的主要特点是,所有数据都是保存在叶子节点,非叶子节点只保存索引的key和指针
    		,而且叶子节点的会通过双向指针进行相连,有什么好处?
    		①如果一个磁盘块大小固定的情况下,非叶子节点不保存数据,就可以保存更多的key,保存了更多的key,树的分叉是不是就更多
    		 这样可以进一步降低树的高度
    		②查询效率更为稳定,因为查询任何数据是不是都要找到叶子节点那一层,层级是一样的。
    		③由于有指针双向相连,可以便于范围查询
    	
    InnoDB和MyISAM存储数据和索引上的区别
    	innodb是将数据和索引存储在.ibd文件中的
    	myisam是将索引存储在.myi文件中,将数据存储在.myd文件中
    		先去myi文件中找到数据的磁盘地址,再去myd文件中根据地址直接获取数据。
    

    存储过程
    创建语法:
    	-- 修改分隔符为$ (由于存储过程中的代码是一个整体,所以不希望;是分隔符)
    	DELIMITER $
    
    	-- 标准语法
    	CREATE PROCEDURE 存储过程名称([参数列表])
    	BEGIN               -- 相当于java中的{
    		SQL 语句列表;   -- 相当于java中的方法体
    	END$                -- 相当于java中的}
     
    	-- 修改分隔符为分号
    	DELIMITER ;
    调用存储过程
    	CALL 存储过程名称([实际参数列表]);
    存储过程的查询
    	查看指定数据库中所有的存储过程
    		SELECT * FROM mysql.proc WHERE db='数据库名称';
    	查看mysql服务器中所有的存储过程
    		SHOW PROCEDURE STATUS;
    存储过程的删除
    	drop procedure [if exists] 存储过程名
    	
    存储过程中的变量
    	①声明变量并赋初始值
    		declare 变量名 数据类型 default 默认值
    	②声明变量不赋初始值
    		declare 变量名 数据类型
    	③手动给变量赋值
    		set 变量名=值
    	④将查询结果赋值给变量
    		select 字段名 into 变量名 from 表名...
    	注意:变量的赋值必须在所有变量声明完成之后
    存储过程中的if条件判断
    	if 条件表达式 then
    		sql语句
    	[elseif 条件表达式 then
    		sql语句
    	else
    		sql语句]
    	end if;
    参数
    	声明参数:
    		输入参数
    			IN 参数名 数据类型
    		输出参数
    			OUT 参数名 数据类型
    	调用存储过程时传递参数
    		输入参数
    			1. 写死一个值
    			2. 通过查询语句查询一个值
    		输出参数  
    			@参数名
    			@参数名本质是一个会话变量,所谓的用户变量就是在整个会话中都可以使用。
    存储过程中的while循环
    	while 条件表达式 do
    		sql语句;
    	end while;
    
    存储函数

    ​ 创建语法:
    ​ – 修改分隔符为$ (由于存储过程中的代码是一个整体,所以不希望;是分隔符)
    ​ DELIMITER $
    ​ create function 函数名()
    ​ returns 返回值的类型
    ​ begin
    ​ 函数体
    ​ return 返回值;
    ​ end
    ​ – 修改分隔符为分号
    ​ DELIMITER ;
    ​ 调用语法
    ​ select 函数名();
    触发器
    ​ 概念:
    ​ 可以在 insert、update、delete 之前或之后触发并执行触发器中定义的 SQL 语句
    ​ 分类:
    ​ insert型触发器
    ​ update型触发器
    ​ delete型触发器
    ​ 创建语法:
    ​ DELIMITER $
    ​ CREATE TRIGGER 触发器名称
    ​ BEFORE|AFTER INSERT|UPDATE|DELETE
    ​ ON 表名
    ​ FOR EACH ROW
    ​ BEGIN
    ​ 触发器要执行的功能;
    ​ END$
    ​ DELIMITER ;
    ​ 查看触发器
    ​ show triggers;
    ​ 删除触发器
    ​ drop trigger 触发器名称;

    事务
    ​ 概念: 一个包含一条或者多条sql语句的执行单元,要么同时成功,要么同时失败

    三个操作:
    	1. 开启事务
    		start transaction;
    	2. 提交事务
    		commit;
    	3. 回滚事务
    		rollback;
    事务的提交方式:
    	在mysql中,如果没有手动开启事务,事务默认是自动提交的
    		select @@autocommit;
    	查看和修改提交机制
    		SELECT @@autocommit;
    		SHOW VARIABLES LIKE '%autocommit%'
    
    		SET @@autocommit = 1;
    		
    事务的四大特性
    	原子性
    		强调的是事务的不可分割
    	一致性
    		事务的执行前后,由一个一致性状态转移到另一个一致性状态
    	隔离性
    		强调的是一个事务的执行不应该受到其它事务的干扰
    	持久性
    		强调的是事务一旦提交或者回滚,对数据库中的数据的影响是持久的
    可能产生的问题
    	脏读
    		一个事务读取到了另一个事务还未提交的数据
    	不可重复读
    		在一个事务中读取到了另一个事务已经提交的修改的数据,造成在一次事务中多次查询结果不一致
    	虚读/幻读
    		没有读取到另一个事务已经提交的insert的数据
    隔离级别
    	read uncommitted
    		读未提交
    	read committed
    		读已提交
    	repeatable read   (mysql)
    		可重复读
    	serializeable
    		串行化
    	隔离级别从上到下安全性越来越高,但是效率越来越低
    	
    	查询隔离级别
    		select @@tx_isolation
    	设置隔离级别
    		设置 全局|会话 事务 隔离  级别  ...
    		
    		set global|session transaction isolation level 
    java代码管理事务的代码思路:
    	try{
    		// 1. 开启事务
    		// 2. 执行sql语句
    		// 3. 提交事务
    	}catch(Exception e){
    		// 4. 回滚事务
    	}	
    




























    展开全文
  • MySql之DDL操作创建(添加主键, 外键约束以及基本的数据类型)
  • 我从来没想过会拼多多这款软件所魔怔,他的这种社交营销的能力,实在是太强了,在怂恿之下,开始给儿子拼个这个,各位有空帮砍下,https://w.url.cn/s/AzlPAB9,或者扫下码,言归正传,看到老杨写的这篇小文《ORA-...
  • 小议Oracle外键约束修改行为

    千次阅读 2011-12-27 15:32:29
    小议Oracle外键约束修改行为(一) Oracle的外键用来限制子中参考的字段的值,必须在主中存在。而且在主的记录发生变化导致外键参考唯一约束值发生了变化时,定义了一系列的动作。 在SQL92标准...
  •  2、外键:foreign key 外键的作用保证2个或2个以上的数据表的数据一致性和完整性  3、唯一:unique  4、非空:not null  5、默认值:deafult  6、自增:auto_increment 设置了自增值每次自动增加1 二、...
  • 外键约束 mysql

    2021-04-03 23:15:58
    外键约束 mysql 让之间产生关系,从而保证数据的正确性 建表时创建外键 create table 表名( ... 外键列 constraint 外键名称 foreign key (外键列名称) references 主名称(主列名称) ); 删除外键 ...
  • ORACLE 外键约束修改行为

    千次阅读 2009-11-13 23:19:00
    而且在主的记录发生变化导致外键参考唯一约束值发生了变化时,定义了一系列的动作。在SQL92标准中定义了几种外键改变后,如何处理子记录的动作,其中包括:限制Restrict:这种方式不允许对参考的记录的键值...
  • mysql外键约束

    2016-07-24 16:29:52
    外键约束 维护一个学生与班级的关系   外键定义:外键就是指的是一个的某个字段的值指向另外一个的主键。   增加外键 在一张中创建一个字段,该字段指向另外一张的主键。通过一定的约束语句来指明...
  • 的完整性约束-非外键约束外键约束解释 主键约束 主键约束(PRIMARY KEY,缩写PK),是数据库中最重要的一种约束,其作用是约束中的某个字段可以唯一标识一条记录。因此,使用主键约束可以快速查找中的记录...
  • oracle外键约束

    2018-08-28 19:06:40
    外键约束 – 格式:forign key(外键名) references 主(参照列名) – 比如,我们想要使用 clazz_id 字段将 tb_clazz 和 tb_stu 联合起来 – clazz_id int references tb_clazz(id) – 外键是构建于一张...
  • MySQL学习10:外键约束下的更新操作

    千次阅读 2016-05-10 15:32:16
     我们进行外键约束的创建以后,在更新的时候,子是否也进行相应的更新。这是我们创建外键约束最大的好 处。有以下几种:  1)CASCADE:从父删除或更新且自动删除或更新子中匹配的行。  2)SET NULL:
  • Oracle的外键用来限制子中参考的字段的值,必须在主中存在。而且在主的记录发生变化导致外键参考唯一约束值发生了变化时,定义了一系列的动作。 这篇描述一下如何实现...小议Oracle外键约束修改行为(一...
  • 一、外键约束  1、什么是外键?  外键指的是其他表中的主键,当做该的外键。  2、创建外键。  2.1 可在创建的时候直接创建外键,如图所示:  create table table_name (字段名 字段属性,[add ...
  • PostgreSQL外键约束reference

    万次阅读 2016-06-03 14:51:21
    对于外键约束,关联性很强,有一些可用的操作,在这里引用一篇文章 ...外键约束用来实现之间的参照完整性(referential integrity)。 外键约束是指一个引用(referencing table)中的一个或多个引用字段(r
  • 添加主键约束课程号CON,添加外键约束教工编号TON (三)Score(成绩) 添加两个外键约束学号SNO和课程号CNO,主键约束是Sno+ Cno。 (四)Teacher(教师) 添加主键约束教工编号TNO 主键约束: ...
  • [mysql主键、外键约束]创建完成后,再添加主键约束 今天在做数据库作业时,发现了问题,我不小心忘了写主键约束,查了书籍,全都是在插入数据时写的约束,上网找到了一个解决方案试验后找到了它的公式。 alter ...
  • 约束的根本目的是保证数据的完整性,主要有主键约束、外键约束、唯一性约束、检查约束、默认值约束、非空约束。 域完整性 是对数据表中的字段属性进行约束,包括字段的值域、字段的类型以及字段的有效规则等约束,域...
  • 创建外键,声明主键的方式小结,mysql,主键,外键,数据类型,5.mysql 数据类型
  • MySQL之添加和删除外键约束

    千次阅读 2019-04-27 21:15:02
    1. 创建时添加外键约束 CREATE TABLE Orders ( Id_O int NOT NULL, OrderNo int NOT NULL, Id_P int, PRIMARY KEY (Id_O), CONSTRAINT fk_PerOrders FOREIGN KEY (Id_P) REFERENCES Persons(Id_P)...
  • 2、从外键列的类型和主的关联列的类型要求一致或兼容,名称无要求 3.主的关联列必须是一个key (一-般是主键或唯一) 4.插入数据时,先插入主,再插入从 删除数据时,先删除从,再删除主 学习于...
  • 外键约束

    2016-09-27 15:05:00
    主键是能确定一条记录的唯一标识,...是能确定另一张记录的字段,用于保持数据的一致性。比如,A中的一个字段,是B的主键,那他就可以是A外键。 constraint a_b foreign key(Kno) references Key1 ...
  • mysql设置外键约束详解,外键约束的要求: a.父表和子表必须使用相同的存储引擎,而且禁止使用临时表。 b.数据表的存储引擎只能为InnoDB。 c.外键和参照列必须具有相似的数据类型。其中数字的长度或是否有符号位必须...
  • 文章目录约束FOREIGN KEY 外键约束如何编辑数据表的默认存储引擎 约束 1.约束是为了保证数据的完整性和一致性 2.约束分为表级约束和列级约束 (1)如果约束针对一个字段进行约束,那么就称为列级约束 (2)如果针对...
  • 外键关联数据删除策略

    千次阅读 2020-06-11 07:50:00
    说个题外话,我从来没想过会拼多多这款软件所魔怔,他的这种社交营销的能力,实在是太强了,在怂恿之下,开始给儿子拼个这个,各位有空帮砍下,https://w.url.cn/s/AzlPAB...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 50,699
精华内容 20,279
关键字:

被其他外键约束的表如何修改数据