关于我之前问过的一个问题,我正在跟进,我试图寻求从一个愚蠢/写得不好的mysql查询到postgresql的转换.我相信我成功了.无论如何,我正在使用手动从mysql数据库移动到postgres数据库的数据.我正在使用看起来像这样的查询:
"""
UPDATE krypdos_coderound cru
set is_correct = case
when t.kv_values1 = t.kv_values2 then True
else False
end
from
(select cr.id,
array_agg(
case when kv1.code_round_id = cr.id
then kv1.option_id
else null end
) as kv_values1,
array_agg(
case when kv2.code_round_id = cr_m.id
then kv2.option_id
else null end
) as kv_values2
from krypdos_coderound cr
join krypdos_value kv1 on kv1.code_round_id = cr.id
join krypdos_coderound cr_m
on cr_m.object_id=cr.object_id
and cr_m.content_type_id =cr.content_type_id
join krypdos_value kv2 on kv2.code_round_id = cr_m.id
WHERE
cr.is_master= …Run Code Online (Sandbox Code Playgroud) django postgresql database-integrity duplicates unique-constraint
在Rails 2.x中,您可以使用验证来确保您具有如下所示的唯一组合值:
validates_uniqueness_of :husband, :scope => :wife
Run Code Online (Sandbox Code Playgroud)
在相应的迁移中,它可能如下所示:
add_index :family, [:husband, :wife], :unique => true
Run Code Online (Sandbox Code Playgroud)
这将确保丈夫/妻子组合在数据库中是唯一的.现在,在Rails 3中,验证语法发生了变化,范围属性似乎消失了.它现在看起来像:
validates :husband, :presence => true
Run Code Online (Sandbox Code Playgroud)
知道如何在Rails 3中实现组合验证吗?Rails 2.x验证仍然可以在Rails 3中使用,所以我仍然可以使用第一个示例,但它看起来很"旧",有更好的方法吗?
validation ruby-on-rails database-integrity validates-uniqueness-of ruby-on-rails-3
看起来Enterprise Manager*生成的一些脚本(或者没有,它们无关紧要)创建了检查约束WITH NOCHECK.
现在,当任何人修改表时,SQL Server都会遇到失败的检查约束,并抛出错误.
我可以让SQL通过它的所有检查约束,并检查它们吗?
运行:
sp_msforeachtable 'ALTER TABLE ? CHECK CONSTRAINT all'
Run Code Online (Sandbox Code Playgroud)
只启用以前禁用的检查约束,它实际上不会检查它们.
*SQL Server 2000
sql-server sql-server-2000 database-integrity check-constraints sp-msforeachtable
我有点困惑data consistency和data integrity.来自Oracle数据库概念:
data integrity
--------------
Business rules that dictate the standards for acceptable data. These rules
are applied to a database by using integrity constraints and triggers to
prevent invalid data entry.
Run Code Online (Sandbox Code Playgroud)
来自维基百科
Consistency
-----------
Consistency states that only valid data will be written to the database.
Run Code Online (Sandbox Code Playgroud)
那么data consistency和之间的区别是data integrity什么?
提前致谢.
是否有一些等效的Mysql特定指令禁用外键约束的检查?
SET FOREIGN_KEY_CHECKS = 0;
我喜欢 InnoDB 的安全性、一致性和自检性。
但我需要 MyISAM 的速度和轻量级。
我怎样才能使 MyISAM 不太容易因崩溃、错误数据等而损坏?通过检查(检查表或myisamchk)需要很长时间。
我不是在要求事务安全——这就是 InnoDB 的用途。但我确实想要一个可以快速重启而不是几小时(或几天!)之后的数据库。
更新:我不是在问如何更快地将数据加载到表中。我已经对此表示反对,并确定将 MyISAM 表用于我的 LOAD DATA 会快得多。我现在所追求的是降低使用 MyISAM 表的风险。也就是说,减少损坏的机会,提高恢复速度。
database ×1
django ×1
duplicates ×1
innodb ×1
key ×1
myisam ×1
mysql ×1
oracle ×1
postgresql ×1
sql-server ×1
transactions ×1
validation ×1