Tag: 数据库

在空表中查找SQLite列名称

对于踢我写一个“架构文档”工具,生成一个数据库中的表和关系的描述。 目前我正在使用它来与SQLite一起工作。 我设法通过sqlite_master表上的查询提取SQLite数据库中的所有表的名称。 对于每个表名,我然后发射一个简单的 select * from <table name> 查询,然后使用sqlite3_column_count()和sqlite3_column_name() API来收集列名,我将进一步提供给sqlite3_table_column_metadata()以获取更多信息。 很简单,对吗? 问题是,它只适用于非空的表。 也就是说, sqlite_column_*() API只有在sqlite_step()已经返回SQLITE_ROW时才有效,对于空表不是这样。 所以问题是,我怎么能发现空表的列名? 或者,更一般地说,有没有更好的方法来获取SQLite中的这种types的模式信息? 我觉得必须有一个隐藏的sqlite_xxx表隐藏在某个地方包含这个信息,但到目前为止还没有能够find它。

Python基于磁盘的字典

我正在运行一些dynamic编程代码(试图蛮力反驳Collat​​z猜想= P),我正在使用一个字典来存储我已经计算的链的长度。 很明显,它在某个时候耗尽了内存。 是否有任何简单的方法来使用dict一些变种,当它的空间不足时,它将自己的部分页面分页到磁盘? 显然它会比内存中的字典慢,它可能最终会吃掉我的硬盘空间,但是这可能适用于其他问题并不那么徒劳。 我意识到一个基于磁盘的字典几乎是一个数据库,所以我手动实现一个使用sqlite3,但我没有以任何聪明的方式做,并一次查找数据库中的每个元素…这是慢了大约300倍。 最聪明的办法就是创build自己的一套词典,一次只保留一个词,然后用一些有效的方式把它们分开。

sqlite3.OperationalError:无法打开数据库文件

在Django中设置服务器时出现此错误。 这是sqlite3这意味着它应该创build.db文件,但似乎并没有这样做。 我已经规定SQLite作为后端和一个绝对的文件path放在哪里,但没有运气。 这是一个错误还是我做错了什么? (只是想,是在Ubuntu中指定的绝对文件path?) 这是我的settings.py文件的开始: # Django settings for OmniCloud project. DEBUG = True TEMPLATE_DEBUG = DEBUG ADMINS = ( # ('Your Name', 'your_email@example.com'), ) MANAGERS = ADMINS DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'. 'NAME': '~/Harold-Server/OmniCloud.db', # Or path to database file if using sqlite3. […]

我如何安装/更新Postgres 9.4?

我只是安装Postgres,但似乎已经安装了9.3,我想从9.4开始 我只是从新的Ubuntu 14.04.1机器上安装apt-get install postgresql 。 http://www.postgresql.org/download/linux/ubuntu/ 说你可以做: apt-get install postgresql-9.4 但是当我尝试我得到: E: Couldn't find any package by regex 'postgresql-9.4 好的,所以我尝试添加PostgreSQL Apt Repository,但是找不到任何东西。 9.4还没有在包pipe理员呢? 我做了什么可怕的错误?

用大量的testing数据填充数据库表

我需要加载一个包含大量testing数据的表格。 这将用于testing性能和缩放。 我怎样才能轻松地为我的数据库表创build100,000行的随机/垃圾数据?

哪些分页scheme可以处理快速变化的内容列表?

如果您的内容排名可以快速更改,则分页难度会更大,而当这些排名不同的用户时则更难。 (让我们把无限滚动看作是链接不可见的分页types)。有两个难题:最上面的新增内容和重新排列的内容。 让我们忘记新增内容,并接受您必须刷新页面1才能看到它。 让我们也假装我们正在做纯粹的ORDER BY position ; 如果您按其他方式sorting,则可能必须使用窗口函数。 我们的页面每页有4行动物。 他们开始: +—-+———-+———–+ | id | position^| animal | +—-+———-+———–+ | 1 | 1 | Alpacas | | 2 | 2 | Bats | | 3 | 3 | Cows | | 4 | 4 | Dogs | | 5 | 5 | Elephants | | 6 […]

在MySQL中删除一个表是否也删除索引?

在文档中没有明确提到( http://dev.mysql.com/doc/refman/6.0/en/drop-table.html )。 我问,因为我刚刚在一个Rails项目中看到一个好奇的数据库迁移,开发人员在删除表之前删除了所有的索引,似乎没有必要。

为什么VARCHAR需要长度规格?

为什么我们总是需要指定VARCHAR(length)而不是VARCHAR ? 无论如何,它是dynamic的。 UPD:我很困惑,因为它是强制性的(例如在MySQL中)。

离线/在线数据同步策略

我的要求是我有服务器J2EE Web应用程序和客户端J2EE Web应用程序。 有时客户端可以下线。 当客户端联机时,他应该能够同步来回的变化。 此外,我应该能够控制哪些行/表需要基于一些filter/规则进行同步。 有没有现成的Java框架呢? 如果我需要自己实施,你可以build议哪些不同的策略? 我脑海中的一个解决scheme是在同步期间维护sql日志并在另一侧执行相同的语句。 你看到这个策略有什么问题吗?

两阶段提交

我相信大多数人知道什么是2PC(两阶段提交协议),以及如何在Java或大多数现代语言中使用它。 基本上,它是用来确保交易是同步的,当你有2个或更多的数据库。 假设我有两个DB(A和B)在两个不同的位置使用2PC。 在A和B准备提交事务之前,两个数据库都会向事务pipe理器报告,说他们已经准备好提交了。 所以当事务pipe理器被确认时,它会发回一个信号给A和B,告诉他们继续。 这是我的问题:比方说,A收到信号,并进行交易。 一旦一切完成,B即将做同样的事情,但有人拔掉电源线,导致整个服务器关机。 当B重新上线时,B会做什么? B怎么做? 请记住,A是承诺,但B不是,我们正在使用2PC(所以,2PC的devise停止工作,不是吗?)