问题标签 [database-integrity]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mysql - 如何更安全地使用 MyISAM 表?
我喜欢 InnoDB 的安全性、一致性和自检性。
但我需要 MyISAM 的速度和重量。
如何使 MyISAM 不易因崩溃、不良数据等而损坏?通过检查(CHECK TABLE 或 myisamchk)需要很长时间。
我不是要求事务安全——这就是 InnoDB 的目的。但我确实想要一个可以快速重启的数据库,而不是几小时(或几天!)之后。
更新:我不是在问如何更快地将数据加载到表中。我已经对此表示反对,并确定为我的 LOAD DATA 使用 MyISAM 表要快得多。我现在追求的是降低使用 MyISAM 表的风险。也就是说,减少损坏的机会,提高恢复速度。
database - 如何修复可能的数据库损坏?
我在一个客户那里对他们的访问应用程序做一些快速修复。有一段时间我尝试了访问,但我正在迅速恢复。但是,我发现了一个有趣的问题:
对于某些报告,我收到“记录已删除”错误。我检查了报告,似乎一张桌子有问题。打开该表时,我发现所有列都标记为“#deleted”的记录。所以很明显,这一行似乎是罪魁祸首。但是,当我尝试删除该行时,并没有真正发生任何事情。如果我重新打开表,该行仍然存在。
数据库中是否存在损坏?我怎样才能永久删除此记录?
编辑:这是一个 MS2000 版本
解决方案:简单的压缩/修复不起作用。我将数据库转换为 2003 文件格式,这成功了。我已经标记了建议压缩/修复的第一个答案,因为它为我指明了正确的方向。谢谢!
sql-server - SQL Server:如何让服务器检查其所有检查约束?
似乎 Enterprise Manager* 生成的一些脚本(或者不是,没关系)创建了检查约束WITH NOCHECK。
现在,当任何人修改表时,SQL Server 都会遇到失败的检查约束,并抛出错误。
我可以让 SQL 遍历所有的检查约束并检查它们吗?
跑步:
只启用以前禁用的检查约束,它实际上并不检查它们。
脚注
* SQL Server 2000
database - 如何在已部署的应用程序上捕获数据库和软件版本不匹配?
我正在开发一个访问服务器上公共数据库的独立应用程序。它将被我组织中的几十个人使用。
我知道我需要更新软件和数据库的设计。这创造了有人将使用旧软件对数据库执行查询的可能性。
如果用户尝试启动应用程序的过时版本,我已经有一个系统可以捕获。但是,这并不能防止大多数时间保持应用程序运行的人。
我的想法是在数据库中放置一个版本条目(在 tblVersion 或类似的东西中),并在每次添加、更新或删除数据库中任何表中的任何记录(tblVersion 除外)时检查它,而不仅仅是读取。
这样,即使用户拥有过时版本的 SW,我也可以捕获(我认为)可能损坏数据库的内容:检查数据库中的版本与代码中的内容,并禁止添加、更新、如果不匹配,则删除操作。同时,我不会将大量检查的开销添加到 tblVersion 以进行 DB 读取。
我的问题: 这是声音吗?有没有更好的方法来解决它?如果是这样,是什么?
谢谢!
ruby-on-rails - Rails 3:验证组合值
在 Rails 2.x 中,您可以使用验证来确保您具有唯一的组合值,如下所示:
在相应的迁移中,它可能如下所示:
这将确保丈夫/妻子组合在数据库中是唯一的。现在,在 Rails 3 中,验证语法发生了变化,范围属性似乎消失了。现在看起来像:
知道如何在 Rails 3 中实现组合验证吗?Rails 2.x 验证在 Rails 3 中仍然有效,所以我仍然可以使用第一个示例,但它看起来很“旧”,有更好的方法吗?
zend-framework - Doctrine 中的“SQLSTATE [23000]:违反完整性约束”
尽管我真的不明白为什么,但我确实违反了 Doctrine 的完整性约束。
架构.yml
这是我的数据夹具(data.yml)
php - MySQL 多插入?插入失败后的 MySQL 数据库完整性
是否可以一次将一行插入到多个表中?如果你做几个由一个ID相关的表;如果 INSERT 失败,确保保持完整性的最佳方法是什么?
forum - 是否可以将我的数据库与论坛(SMF、phpBB)数据库集成?
我有一个带有用户群的 Web 应用程序。我想添加一个论坛,但我不希望用户再次在那里注册。
我正在使用 Rails/Postgresql。
是否可以集成论坛,以便在我的网站注册后,用户也将在论坛中注册?
谢谢
mysql - 如何检查 MySQL 的完整性?
我有一个大型 MySQL 5 数据库,用于旧机器上的 drupal 站点。在新数据库上备份和恢复后,我得到:
ERROR 1064 (42000) at line * *: 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在 ''captcha_success_form_ids|a:1:{s:13:\"user_register\";s:13:\"user_register\";}sp' 附近使用正确的语法1号线
我不确定哪个表是此错误的来源(我没有名为“user_register”的表)。所以我想知道如何在进行另一次失败的备份/恢复工作之前快速检查原始数据库的完整性?(我有命令行访问权限)。谢谢
sql-server-2008 - 希望简单的 SQL 问题,用于根据另一列的值强制列的不变性
我有一个包含值列和状态列的表。
执行以下操作的最简单和最有效的方法是什么?这个想法是将货币价值输入数据库,然后有人说“最终”,然后我需要保证没有变化,因为计费过程开始了。
- 新行的 Status='New' (否则失败)
- 值只能在 Status='New' 时更新
- 状态可以恰好一次更改为“最终”,之后整行实际上是只读的。