mysql 事务类型表的用法
1。两个表必须是
InnoDB表类型
2。使用在外键关系的域必须为索引型(Index)
3。使用外键关系的域必须与数据类型相似
以下是父表和子表的例子:
创建表时同时创建关联
create table `parent`(
`id`
int(11) not null primary key,
`name` varchar(255) not null
) type =
innodb;
create table `child`(
`id` int(11),
`parent_id`
int(11),
index `parend_ind` (`parent_id`),
foreign key(`parent_id`)
references parent(`id`)
on delete
cascade
)type=inndob;
建立表之后建立的关联:
(一定要先创建需要的索引)
ALTER TABLE yourtablename
ADD
[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}]
CONSTRAINT symbol
如果被给出,它在数据库必须是唯一的,如果没有给出则自动创建,
CASCADE:从父表删除或更新且自动删除或更新子表中匹配的行
SET
NULL:从父表删除或更新行,并设置子表中外键列为NULL;
NO
ACTION:意味不采取动作,就是如果有一个相关的外键值在被参考的表里,删除或更新主要键值的企图不被允许进行,InnoDB拒绝对父表的删除或更新操作
RESTRICT:拒绝对父表的删除或更新操作。
SET DEFAULT: 这个动作被解析程序识别,但InnoDB拒绝包含ON
DELETE SET DEFAULT或ON UPDATE SET DEFAULT子句的表定义。
大概用法:
mysqli->autocommit();
//关闭事务自动提交
编写别的代码;
mysqli->commit(); //
提交事务让里面的代码执行
mysqli_rollback(); //不执行里面的代码==>事务回滚
mysql 事务类型表的用法的更多相关文章
- 商品库存“存取设计”,MySQL事务、表锁、行锁
MySQL 使用 SELECT ... FOR UPDATE 做事务写入前的确认 以MySQL 的InnoDB 为例,预设的 Tansaction isolation level 为 REPEATA ...
- MySQL事务-ROLLBACK,COMMIT用法详解
使用ROLLBACK 既然我们已经知道了什么是事务处理,下面讨论事务处理的管理中所涉及的问题. 管理事务处理的关键在于将SQL语句组分解为逻辑块,并明确规定数据何时应该回退,何时不应该回退. MySQ ...
- mysql事务锁表
-- 查看被锁住的SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS; -- 等待锁定SELECT * FROM INFORMATION_SCHEMA.INNO ...
- MySQL事务(一)
一.基本介绍 事务就是一组dml语句,这些语句存在逻辑上的相关性,这一组dml语句要么全部成功,要么全部失败,是一个整体.ACID属性(原子性,一致性,隔离性,持久性):mysql提供一种机制,保证我 ...
- mysql事务控制和锁定语句
MySQL 支持对 MyISAM 和 MEMORY 存储引擎的表进行表级锁定,对 BDB 存储引擎的表进行页级锁定,对 InnoDB 存储引擎的表进行行级锁定.默认情况下,表锁和行锁都是自动获得的,不 ...
- day15(mysql 的多表查询,事务)
mysql之多表查询 1.合并结果集 作用:合并结果集就是把两个select语句查询的结果连接到一起! /*创建表t1*/ CREATE TABLE t1( a INT PRIMARY KEY , b ...
- MySQL事务未提交导致整个表锁死
问题及说明: 当一个SQL事务执行完了,但未COMMIT,后面的SQL想要执行就是被锁,超时结束:报错信息如下: mysql> ERROR 1205 (HY000): Lock wait tim ...
- mysql数据库事务类型
出自:https://blog.csdn.net/u014439239/article/details/78086729 数据库事务有不同的隔离级别,不同的隔离级别对锁的使用是不同的,锁的应用最终导致 ...
- MySQL事务表和非事务表
查看 max_binlog_stmt_cache_size 参数解释时,有这么一句话 If nontransactional statements within a transaction requi ...
随机推荐
- mongodb基础系列——数据库查询数据返回前台JSP(一)
经过一段时间停顿,终于提笔来重新整理mongodb基础系列博客了. 同时也很抱歉,由于各种原因,没有及时整理出,今天做了一个demo,来演示,mongodb数据库查询的数据在JSP显示问题. 做了一个 ...
- iframe与include的区别
iframe与include区别和使用问题 1.iframe可以用在静态和动态页面,include只能用在动态页面. 2.iframe是视图级组合,include是代码级组合. 3.iframe独立成 ...
- c++ template笔记
1. 数组 template <typename T, int N> void array_print(T (&arr)[N]) { for(int i = 0; i < N ...
- Javascript 高阶函数等
高阶函数 函数可以接受另一个函数作为参数 称为 高阶函数. map : arr.map(pow); 数组.map(函数); reduce :arr.reduce(function(){ }); 数组. ...
- sudo apt-get install gksu
exmyth@Inspiron-5437:/etc/default$ gksu gedit apport 程序“gksu”尚未安装. 您可以使用以下命令安装:sudo apt-get install ...
- node.js在windows下的学习笔记(3)---npm
1.什么是npm npm是Node.js的包管理器,它允许开发人员在Node.js的应用程序中创建,共享,重用模块.之前我们通过node的官网的安装程序安装了Node.js,那么npm就已经装好了的. ...
- pair的例子
11.12 编写程序,读入string和int的序列,将每个string和int存入一个pair中,pair保存在一个vector中. #include<iostream> #includ ...
- CSharp Algorithm - How to traverse binary tree by breadth (Part II)
/* Author: Jiangong SUN */ Here I will introduce the breadth first traversal of binary tree. The pri ...
- CopyU!下一次更新将增加对设备厂商及型号的识别!
CopyU!下一版本的更新将加入对设备厂商及型号的识别功能,当用户连接设备时,CopyU!将能够辨别出设备的详细型号等,能够在一定程度上帮助用户发现问题设备或仿冒设备. 敬请期待即将到来的新更新!
- Java基础知识强化之IO流笔记41:字符流缓冲流之复制文本文件案例02(使用 [ newLine() / readLine() ] )(重要)
1. 使用字符流缓冲流的特殊功能 [ newLine() / readLine() ] 需求:把当前项目目录下的a.txt内容复制到当前项目目录下的b.txt中 数据源: a.txt -- 读取数据 ...