定义 DEFERRABLE INITIALLY IMMEDIATE 的约束仍然延迟
延迟约束的强制执行
定义为 DEFERRED / DEFERRABLE 和 INITIALLY IMMEDIATE 的主要和唯一键约束强制唯一性在交易过程中的特定点执行。
延迟状态
1。修改多行的更新语句:
修改涉及主键交换的多行的 UPDATE 语句即使使用 INITIALLY IMMEDIATE 约束也会成功,因为约束检查被推迟到该语句之后。
2.数据修改 CTE:
数据修改 CTE 的行为类似,但冲突更新除外,更新会因非延迟主键冲突而失败。
3.事务中的多个 UPDATE 语句:
如果没有 SET CONSTRAINTS,事务中违反唯一约束的多个 UPDATE 语句将失败,因为在每个语句之后执行检查。
立即状态
- 使用 INITIALLY IMMEDIATE 定义的约束仅在每个之后强制执行语句。
- INITALLY IMMEDIATE 和 SET CONSTRAINTS IMMEDIATE 的行为相同。
延迟和 PostgreSQL 实现
- PostgreSQL 在每行更新后强制执行非延迟约束,导致潜在的冲突。
- DEFERRABLE 约束提供此有缺陷的实现的解决方法。
约束执行摘要
- 在语句后检查 DEFERRABLE INITIALLY IMMEDIATE 约束。
- 检查 DEFERRABLE INITIALLY DEFERRED 约束后
- 在每个命令后都会检查非延迟约束。
注意: UNIQUE 和 PRIMARY KEY 约束会被特殊对待,非延迟约束是每次修改后立即检查。
与 SQL 标准的兼容性
到为了实现符合标准的行为,DEFERRABLE 约束应声明为 INITIALLY IMMEDIATE,但不能延迟。与立即唯一性检查相比,这可能会降低性能。
外键约束
DEFERRABLE 约束不能用于 FOREIGN KEY 引用,因为引用的列必须是不可延迟的唯一或主键约束。
以上是延迟和立即约束如何影响数据库事务中的主键和唯一键强制执行?的详细内容。更多信息请关注PHP中文网其他相关文章!

mysqloffersvariouscharactersetsforstringdatatypes:1)latin1 forwesterneuropeanlanguages,2)utf8 formultingualsupport,3)utf8mb4f OREXTEDENDENDENENICODECLUDINGEMOJIS,4)UCS2FORIXED-WIDTHENCODING,5)assiiforbasiclatin.ChoosideStherightStetSetensensersdaintegrity

流式传输BLOB确实比直接存储更好,因为它能减少内存使用和提高性能。1)通过逐步读取和处理文件,避免了数据库膨胀和性能下降。2)流式传输需要更复杂的代码逻辑,且可能增加I/O操作次数。

mySqlStringTypesimpactStorageAndPerformanCeaseAsfollows:1)长度,始终使用theSamestoragespace,whatcanbefasterbutlessspace-felfficity.2)varCharisvariable varcharisvariable length,morespace-morespace-morespace-effficitybuteftife buteftife butfority butfority textifforlyslower.3)

mySqlStringTypesIncludeVarChar,文本,char,enum和set.1)varCharisVersAtileForvariable-lengthStringStringSuptOptoPeptoPepecifientlimit.2)textisidealforlargetStortStorStoverStorextorewiteWithoutAdefinedLengthl.3)charlisfixed-Length

MySQLoffersvariousstringdatatypes:1)CHARforfixed-lengthstrings,2)VARCHARforvariable-lengthtext,3)BINARYandVARBINARYforbinarydata,4)BLOBandTEXTforlargedata,and5)ENUMandSETforcontrolledinput.Eachtypehasspecificusesandperformancecharacteristics,sochoose

TograntpermissionstonewMySQLusers,followthesesteps:1)AccessMySQLasauserwithsufficientprivileges,2)CreateanewuserwiththeCREATEUSERcommand,3)UsetheGRANTcommandtospecifypermissionslikeSELECT,INSERT,UPDATE,orALLPRIVILEGESonspecificdatabasesortables,and4)

toadduserInmysqleffectection andsecrely,theTheSepsps:1)USEtheCreateuserStattoDaneWuser,指定thehostandastrongpassword.2)GrantNectalRevileSaryPrivilegesSustate,usiveleanttatement,AdheringTotheTeprinciplelastPrevilegege.3)

toaddanewuserwithcomplexpermissionsinmysql,loldtheSesteps:1)创建eTheEserWithCreateuser'newuser'newuser'@''localhost'Indedify'pa ssword';。2)GrantreadAccesstoalltablesin'mydatabase'withGrantSelectOnMyDatabase.to'newuser'@'localhost';。3)GrantWriteAccessto'


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

记事本++7.3.1
好用且免费的代码编辑器

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境