Tag: 数据库

MySQL – 在列中replace字符

作为一个自学成才的新手,我为自己创造了一个很大的问题。 在将数据插入到数据库之前,我已经将string中的撇号(')转换为双引号(“”),而不是所需的反斜杠和撇号(\),这是MySQL实际需要的。 在我的表增长超过20万行之前,我认为最好立即纠正这个问题。 所以我做了一些研究,发现了SQL REPLACE函数,这很好,但我现在感到困惑。 在ASP中,我是这样做的: str = Replace(str,"'","""") 如果我在SQL Workbench中查看我的数据库,那么我转换的符号现在是一个单引号(“),这让我困惑了一些,我明白为什么它会从double变成single,但是我不知道是哪一个,米意思是现在正在改变。 为了通过使用SQL REPLACE来解决我的问题,现在是将单引号(“)转换为反斜杠和撇号(\),还是将双引号(”“)转换为反斜杠和撇号(\) ? 例如,这个: SQL = " SELECT REPLACE(myColumn,"""","\'") FROM myTable " 或这个: SQL = " SELECT REPLACE(myColumn,""","\'") FROM myTable " 我希望我自己解释清楚,一如既往地感激地接受任何build议。 有关我的问题的任何疑问,请评论。 非常感谢 – 更新 – 我已经尝试了以下查询,但仍然无法更改数据中的(“): SELECT REPLACE(caption,'\"','\'') FROM photos WHERE photoID = 3371 SELECT REPLACE(caption,'"','\'') FROM photos WHERE photoID = 3371 […]

Rails检查数据库中是否存在logging

检查数据库在处理之前是否会返回logging的方法是最有效的。 例如: Truck.where("id = ?", id).select('truck_no').first.truck_no 如果卡车存在,这可能会或可能不会返回卡车。 处理这个请求时,确保页面不会崩溃的最有效的方法是什么? 我如何处理这两个在视图和控制器,如果让我说,我使用循环通过每辆卡车,并打印出其编号。 如果logging不存在,我希望能够打印出一条消息,而不是说找不到logging。

如何解决SQL Server错误1222即解锁一个SQL Server表

我正在一个数据库中,我通过数据加载器加载一个原始表中的数据。 但是今天的数据加载程序由于未知的原因卡住了。 然后我停止从Windows任务pipe理器的数据加载器。 但是,我再次尝试加载原始表中的数据,但发现它被locking,我不能做任何操作。 我试过重新启动SQL Server服务,但没有解决。 而且我没有权限在这台服务器上终止进程。 以下是SQL Server显示的消息。 执行Transact-SQL语句或批处理时发生exception。 (Microsoft.SqlServer.ConnectionInfo) 计划地点: 在Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery(String sqlCommand,ExecutionTypes executionType) 在Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery(StringCollection sqlCommands,ExecutionTypes executionType) 在Microsoft.SqlServer.Management.Smo.ExecutionManager.ExecuteNonQuery(StringCollection查询) 在Microsoft.SqlServer.Management.Smo.SqlSmoObject.ExecuteNonQuery(StringCollection查询,布尔includeDbContext) 在Microsoft.SqlServer.Management.Smo.NamedSmoObject.RenameImplWorker(String newName) 在Microsoft.SqlServer.Management.Smo.NamedSmoObject.RenameImpl(String newName) =================================== 超过locking请求超时时间。 参数@objname不明确,或者声明的@objtype(OBJECT)错误。 (.Net SqlClient数据提供程序) 服务器名称:162.44.25.59错误号:1222 严重性:16状态:56 过程:sp_rename行号:282 我的SQL Server版本是2008 R2。

就数据库而言,“正常化,正常化,性能化”是一个正确的口头禅?

规范化导致许多基本的和理想的特征,包括审美愉悦。 此外它在理论上也是“正确的”。 在这种情况下,非规范化是作为妥协来实现的,这是为了实现绩效的一种修正。 除了性能之外,还有什么原因可以使数据库非规范化?

名中间名姓。 为什么不是全名?

我试图find一个更好的方法来存储人的名字在表中。 3个字段存储人名的好处是什么? UPDATE 这里有一个有趣的讨论和关于存储名称和用户体验的资源 名字/姓氏合并成一个字段

实施软删除的最佳方法是什么?

目前正在进行一个项目,我们必须为大多数用户(用户angular色)实施软删除。 我们决定在数据库中的每个表上添加一个“is_deleted ='0'”字段,如果特定的用户angular色击中特定logging上的删除button,则将其设置为“1”。 为了今后的维护,每个SELECT查询将需要确保它们不包括is_deleted ='1'的logging。 有没有更好的解决scheme来实施软删除? 更新:我还应该注意到,我们有一个审计数据库,跟踪应用程序数据库中所有表/字段的变化(字段,旧值,新值,时间,用户,IP)。

可靠,高效的Linux键值数据库?

我需要一个快速,可靠和高效的Linux内核键值数据库。 我的密钥大约是128个字节,最大值可以是128K或256K。 数据库子系统不应该使用大于1 MB的RAM。 总数据库大小为20G(!),但是一次只访问一小部分数据。 如果有必要的话,我可以将一些数据blob移出数据库(到普通文件),所以大小最多可以降低到2GB。 数据库必须在最近未经修改的数据中没有任何损失的情况下经受系统崩溃。 我将有大约100倍以上的读取比写入。 如果它可以使用块设备(没有文件系统)作为存储,则是一个优点。 我不需要客户端 – 服务器function,只需要一个库。 我需要Python绑定(但是如果它们不可用,我可以实现它们)。 我应该考虑哪些解决scheme,你推荐哪一个? 我知道哪些人可以工作的候选人: 东京内阁 (Python绑定是pytc ,另请参见pytc示例代码 ,支持散列和B +树,事务日志文件等等,存储区数组的大小在数据库创build时固定;作者必须closures文件以给其他人很多机会,重新开放这些文件的速度很慢; Tyrant服务器可以帮助大量的小写入; 东京内阁,东京暴君和伯克利DB之间的速度比较 ) VSDB (即使在NFS上也是安全的,没有locking;那么障碍是什么?;更新非常慢,但不像在cdb中那么慢; 2003年的最后一个版本) BerkeleyDB (提供崩溃恢复;提供事务; bsddb Python模块提供绑定) Samba的TDB (包含事务和Python绑定,一些用户经历了损坏 ,有时候mmap()是整个文件, repack操作有时会使文件大小加倍,如果数据库大于2G(即使在64位系统上) ,集群实现( CTDB )也可用;经过大量修改后文件变得太大;在大量哈希争用之后文件变得太慢;没有内置方式来重build文件;通过locking单个哈希桶实现非常快速的并行更新) aodbm (追加 – 只有这样才能在系统崩溃中幸存下来,用Python绑定) hamsterdb (使用Python绑定) C-tree (具有高性能的成熟的多function商业解决scheme,具有减lessfunction的免费版本) 旧的TDB (从2001年起) bitcask (日志结构化,用Erlang编写) 各种其他DBM实现(如GDBM,NDBM,QDBM,Perl的SDBM或Ruby的;可能他们没有适当的崩溃恢复) 我不会使用这些: MemcacheDB (客户端服务器,使用BereleleyDB作为后端) cdb (每次写入时需要重新生成整个数据库) […]

只读DB访问的事务?

关于使用事务从数据库中读取似乎有很不同的意见。 引用来自DeveloperWorks的文章交易策略:模型和策略概述 : 如果你只是读数据,为什么你需要一个交易? 答案是你没有。 启动事务以执行只读操作会增加处理线程的开销,并可能导致数据库上的共享读取locking(取决于您使用的数据库types以及隔离级别设置为什么)。 相反的观点是从Hibernate文档非事务性数据访问和自动提交模式引用如下 我们的build议是,不要在应用程序中使用自动提交模式,只有在有明显的性能好处或未来的代码更改不太可能时,才应用只读事务。 无论您是读取还是写入数据,始终都希望定期使用ACID事务来对您的数据访问操作进行分组。 EclipseLink邮件列表在这里也有类似的争论。 那么真相在哪里呢? 是否阅读最佳做法的交易? 如果两者都是可行的解决scheme,使用交易的标准是什么? 据我所见,只有当隔离级别高于“读取提交”时才会有所作为。 它是否正确? 有什么经验和build议?

MySQL – 一对一的关系?

现在我知道关于一对一关系有一些答案,但他们都没有回答我的问题,所以请在表决之前阅读这个:) 我试图在MySQL数据库中实现一对一的关系。 例如让我说我有用户表和帐户表。 而且我想确定有用户只能有一个帐户。 而且每个用户只能有一个帐户。 我发现了两个解决scheme,但不知道该用什么,还有其他的select。 第一个scheme DROP DATABASE IF EXISTS test; CREATE DATABASE test CHARSET = utf8 COLLATE = utf8_general_ci; USE test; CREATE TABLE users( id INT NOT NULL AUTO_INCREMENT, user_name VARCHAR(45) NOT NULL, PRIMARY KEY(id) ) ENGINE = InnoDB DEFAULT CHARSET = utf8; CREATE TABLE accounts( id INT NOT NULL AUTO_INCREMENT, account_name VARCHAR(45) […]

在数据库中存储国际地址的“最佳”方式是什么?

在数据库中存储国际地址的“ 最佳 ”方式是什么? 以模式的forms回答,解释你为什么select正常化(或不正常)的原因。 另外解释为什么你select每个领域的types和长度。 注意:你决定你认为什么领域是必要的。