1. Trigger
Concept
Trigger는 데이터 무결성을 보장하기 위해 SQL 서버에서 제공하는 방법으로, 이벤트에 의해 트리거됩니다. 트리거는 데이터 무결성 제약 조건과 비즈니스 규칙을 적용하는 데 자주 사용됩니다.
2. 트리거 작업
계정 및 account_log 데이터 테이블 만들기:
CREATE TABLE account( id INT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(20), money DOUBL ); INSERT INTO account VALUES (NULL,'张三',1000),(NULL,'李四',1000); CREATE TABLE account_log( id INT PRIMARY KEY AUTO_INCREMENT, operation VARCHAR(20), operation_time DATETIME, operation_id INT, operation_params VARCHAR(200) );
트리거 작업 추가, 삭제 및 수정
// 语法格式: BEFORE|AFTER INSERT: 插入 UPDATE:更新 DELETE:删除 // DELIMITER $ // CREATE TRIGGER 触发器名称 // BEFORE|AFTER INSERT|UPDATE|DELETE // ON 表名 // FOR EACH ROW // BEGIN // 触发器要执行的功能; // END$ // DELIMITER ; // 创建INSERT型触发器。用于对account表新增数据进行日志的记录 DELIMITER $ CREATE TRIGGER account_insert AFTER INSERT ON account FOR EACH ROW BEGIN INSERT INTO account_log VALUES (NULL,'INSERT',NOW(),new.id,CONCAT('插入后{id=',new.id,',name=',new.name,',money=',new.money,'}')); END $ DELIMITER ; // 向account表添加一条记录 INSERT INTO account VALUES (NULL, '王五', 2000); // 查询account表 SELECT * FROM account;
트리거 작업 보기 및 삭제
// 查看标准语法: SHOW TRIGGERS; // 查看触发器 SHOW TRIGGERS; // 删除标准语法:DROP TRIGGER 触发器名称; // 删除account_delete触发器 DROP TRIGGER account_delete;
3. 관계 데이터베이스에서 트랜잭션은 SQL 문, SQL 문 집합 또는 전체 프로그램이 될 수 있습니다. 특징은 이 단위가 동시에 성공하거나 실패하며, 단위의 각 SQL 문이 서로 의존하여 전체를 형성한다는 것입니다. 트랜잭션에는 원자성, 일관성, 격리성, 내구성이라는 네 가지 속성이 있어야 합니다. 이 네 가지 속성을 흔히
ACID 속성이라고 합니다.
네 가지 주요 기능:
원자성:
- 트랜잭션에 포함된 모든 작업은 성공하거나 실패할 경우 롤백됩니다.
-
일관성:
트랜잭션은 데이터베이스를 하나의 일관성 상태에서 다른 일관성 상태로 변경해야 합니다. 즉, 트랜잭션은 실행 전후에 일관된 상태에 있어야 합니다. -
격리:
동일한 테이블을 운영하는 경우와 같이 여러 사용자가 동시에 데이터베이스에 액세스하는 경우 각 사용자에 대해 데이터베이스에서 열린 트랜잭션은 다른 트랜잭션의 작업에 의해 방해를 받을 수 없습니다. 여러 동시 트랜잭션은 분리되어야 합니다. 격리 -
지속성:
일단 트랜잭션이 제출되면 데이터베이스의 데이터 변경 사항은 영구적입니다. 데이터베이스 시스템에 오류가 발생하더라도 트랜잭션 제출 작업은 손실되지 않습니다. 4. 트랜잭션 작업
기본 프로세스
- 롤백 지점을 기록하고 서버에 알림
-
SQL 문 실행:
하나 이상의 특정 SQL 문 실행 -
- Rollback
: 문제 발생, 데이터가 트랜잭션이 시작되었을 때의 상태로 복원됨기본 작업
-- 开启事务 START TRANSACTION; -- 执行SQL语句 UPDATE account SET money=money-500 WHERE NAME='张三'; -- 回滚事务(出现问题) ROLLBACK; -- 提交事务(没出现问题) COMMIT;
트랜잭션 제출 방법
// 查看提交方式 SELECT @@AUTOCOMMIT; -- 1代表自动提交 0代表手动提交 // 修改事务的提交方式 SET @@autocommit=1;
트랜잭션 격리 수준
4가지 격리 수준커밋되지 않은 읽기:
- 커밋되지 않은 읽기
-
커밋된 읽기:
커밋된 읽기(Oracle/SQL Server 데이터베이스 기본 수준) -
-
Serialized
문제가 발생할 수 있음:
더티 읽기:
는 커밋되지 않은 다른 데이터를 의미합니다. 한 트랜잭션 중에 ted 트랜잭션을 읽었습니다.-
반복 불가능한 읽기:
한 트랜잭션 중에 다른 트랜잭션에서 데이터를 읽는 것을 의미합니다. 수정되어 제출된 데이터로 인해 두 쿼리 간에 일치하지 않는 쿼리 결과가 발생했습니다 -
팬텀 읽기:
특정 레코드가 존재하는지 선택하세요. 이 레코드를 삽입하려고 준비했는데, 삽입 실행 시 이 레코드가 이미 존재하여 삽입할 수 없는 것을 발견했습니다. 또는 삭제 삭제가 존재하지 않는데 삭제가 성공한 것으로 확인됨 격리 작업
// 查询数据库隔离级别 SELECT @@TX_ISOLATION; // 修改数据库隔离级别 SET GLOBAL TRANSACTION ISOLATION LEVEL 级别字符串;
참고:
위 내용은 MySQL 데이터베이스에서 트리거 및 트랜잭션을 적용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了关于架构原理的相关内容,MySQL Server架构自顶向下大致可以分网络连接层、服务层、存储引擎层和系统文件层,下面一起来看一下,希望对大家有帮助。

在mysql中,可以利用char()和REPLACE()函数来替换换行符;REPLACE()函数可以用新字符串替换列中的换行符,而换行符可使用“char(13)”来表示,语法为“replace(字段名,char(13),'新字符串') ”。

mysql的msi与zip版本的区别:1、zip包含的安装程序是一种主动安装,而msi包含的是被installer所用的安装文件以提交请求的方式安装;2、zip是一种数据压缩和文档存储的文件格式,msi是微软格式的安装包。

方法:1、利用right函数,语法为“update 表名 set 指定字段 = right(指定字段, length(指定字段)-1)...”;2、利用substring函数,语法为“select substring(指定字段,2)..”。

转换方法:1、利用cast函数,语法“select * from 表名 order by cast(字段名 as SIGNED)”;2、利用“select * from 表名 order by CONVERT(字段名,SIGNED)”语句。

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了关于MySQL复制技术的相关问题,包括了异步复制、半同步复制等等内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了mysql高级篇的一些问题,包括了索引是什么、索引底层实现等等问题,下面一起来看一下,希望对大家有帮助。

在mysql中,可以利用REGEXP运算符判断数据是否是数字类型,语法为“String REGEXP '[^0-9.]'”;该运算符是正则表达式的缩写,若数据字符中含有数字时,返回的结果是true,反之返回的结果是false。


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

드림위버 CS6
시각적 웹 개발 도구

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

mPDF
mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기
