Tag: 数据库

phpMyAdmin删除索引

我在我的表中有一个列已被分配索引。 这是防止我有两个相同的ID号码。 我假设它不让我有两个相同的ID条目是因为它已被设置为唯一。 我想知道如何删除此规则,以便我可以多次插入相同的ID号码。 干杯

MySQL查询以获得有限的许多查询的“交集”

假设我有一个单一的mySQL表(用户)与以下字段: userid gender region age ethnicity income 我希望能够根据用户input的数字返回总logging数。 此外,他们也将提供额外的标准。 最简单的例子是,他们可能会要求1,000条logging,其中600条logging应该有性别=“男性”,400条logging的性别=“女性”。 这很简单。 现在,更进一步。 假设他们现在想要指定区域: GENDER Male: 600 records Female: 400 records REGION North: 100 records South: 200 records East: 300 records West: 400 records 再次,只有1000条logging应该返回,但最后必须有600名男性,400名女性,100名北方人,200名南方人,300名东方人和400名西方人。 我知道这是不正确的语法,但使用伪mySQL代码,它希望说明我正在尝试做什么: (SELECT * FROM users WHERE gender = 'Male' LIMIT 600 UNION SELECT * FROM users WHERE gender = 'Female' LIMIT […]

数据仓库注意事项:何时和为什么?

这里有一点背景: 我知道什么是数据仓库 ,或多或less。 我已经阅读了数十篇关于数据仓库的指南,我已经使用了SSAS,我知道什么是星型模式,维度表和事实表,我知道ETL是什么以及如何去做。 这不是一个“如何”的问题或者对教程的要求。 我的问题是,我读过的关于数据仓库的所有资料似乎都掩盖了构build数据仓库的基本原理 。 它们都是比喻性的,或者在某些情况下,从字面上开始,“ 所以你决定build立一个数据仓库…… ”除了我还没有做出这个决定。 所以我希望SO成员能指点一下,或者帮助拿出某种半客观的testing。 有些东西可以适应某个特定的系统,最后是“我们需要一个数据仓库”或者“不,今天的回报太小”。 我认为我应该能够回答的具体问题是: 在什么时候构build数据仓库是一个值得考虑的select? 换句话说,我应该寻找什么样的迹象,指标或其他标准,这可能表明一个标准的交易环境已经不够了。 全function数据仓库有哪些替代scheme? 在事务数据库和沼气标准复制的“报告服务器”中的非规范化是想到的两个; 在提交DW之前还有其他的我应该探讨吗? 为什么数据仓库比上述select更好? 如果答案是“取决于”,那么它依赖于什么? 什么时候不应该尝试构build数据仓库? 我对所有被视为“最佳实践”的事物持怀疑态度,而不考虑上下文。 当然,必须有一些情况下DW是错误的select – 它们是什么? 有没有什么实际的例子可以看到通过引入数据仓库而得到改进的系统? 一些能够向我解释的,端到端的,他们需要什么types的决策或分析,他们如何决定如何投入,以及仓库如何适应更大的环境? 我不想做一个“让我们从AdventureWorks数据库中创build一个多维数据集” – 这个实现与我无关,我对所涉及的规范和devise以及整个思维过程感兴趣。 我一般不要问多方,但我认为这些都是非常密切的。 我愿意接受任何解答至less前四个问题的答案,尽pipe最后的答案确实有助于在我的脑海中形成这种结果。 链接是好的,如果有人已经写了这个,只要他们是合理的简洁和具体(链接到Ralph Kimball的主页=没有帮助)。 希望我已经明确提出了这个问题 – 在此先感谢您的答案!

解决scheme:此表格不包含唯一列。 网格编辑,checkbox,编辑,复制和删除function不可用

这不是一个问题,而是我发现自己产生的问题/问题和解决scheme。 我认为这将是分享的礼貌,因为没有一个完整的工作解决scheme,我可以find。 在phpMyAdmin中产生的错误是: “此表格不包含唯一的列,网格编辑,checkbox,编辑,复制和删除function不可用。” 有几种工作解决scheme取决于您的具体情况。 例如,只要所有AI或唯一标识符字段都是唯一的,那么您可以简单地修改表格并确保这是主键并设置为唯一值。 我用我的一张桌子上的解决scheme解决了这个问题。 另一个表具有多个作为主字段的AI int值,但有多个相同types的值。 这个简单的解决方法是在表的最后添加一列作为Unique AI Int。 基本上所有的MySQL都在说每个logging需要一个唯一的值来区分行。 希望这是有帮助的。

将服务器日志文件写入数据库是一个好主意?

在阅读了O'Reilly撰写的关于这个主题的文章之后,我想问Stack Overflow对这个问题的看法。

使用SQLCMD的PostDeployment.sql脚本中的条件逻辑

我正在使用SQL 2008数据库项目(在Visual Studio中)来pipe理我的项目的模式和初始testing数据。 atabase项目使用后期部署,其中包含许多使用SQLCMD“:r”语法的其他脚本。 我希望能够有条件地包含某些基于SQLCMDvariables的文件。 这将使我可以在我们每晚构build中多次运行项目,以使用不同的数据configuration(对于多租户系统)来设置各种版本的数据库。 我已经尝试了以下内容: IF ('$(ConfigSetting)' = 'Configuration1') BEGIN print 'inserting specific configuration' :r .\Configuration1\Data.sql END ELSE BEGIN print 'inserting generic data' :r .\GenericConfiguration\Data.sql END 但是我得到一个编译错误: SQL01260:发生了一个致命的分析器错误:Script.PostDeployment.sql 有没有人看到这个错误,或设法configuration他们的postdeployment脚本是灵活的这种方式? 还是我完全用错误的方式来解决这个问题? 谢谢,罗布 PS我也试着改变这个,所以文件的path是一个variables, 类似于这篇文章 。 但是这给了我一个错误,说道路是不正确的。

Django与其他字段的ManyToMany关系

我想存储一些额外的信息,自动创buildManyToMany连接表。 我将如何在Django中做到这一点? 在我的情况下,我有两个表:“员工”和“项目”。 我想存储的是每个员工在每个项目中每工作小时收到多less,因为这些值是不一样的。 那么,我该怎么做呢? 发生在我身上的是,而不是“ManyToManyField”方法,显式创build第三个类/表来存储这些新的信息,并使用“ForeignKey”方法设置其与“Employees”和“Projects”的关系。 我很确定它会起作用,但是这是最好的方法吗?

Android:数据库文件存储在哪里?

我在Android设备上创build了一个SQLite数据库。 该程序可以读/写数据库,所以数据库文件显然已经创build。 SQLiteDatabase.mPath设置为 db.mPath = "/data/data/dev.client.android/databases/clientDB.db" 但是当我浏览设备上的目录时,我找不到文件clientDB.db。 我看了一下数据目录,但是看起来是空的。 有人知道这里可能是错的吗?

应该使用什么列types来将序列化数据存储在mysql数据库中?

应该使用什么列types来将序列化数据存储在mysql数据库中? 我知道你可以使用varbinary,blob,text。 什么被认为是最好的,为什么? 编辑:我知道这不是“好”来存储序列化的数据。 我需要在这个案例中做到这一点。 请相信我,关注这个问题,如果你有答案。 谢谢!

PreparedStatements和性能

所以我一直听说PreparedStatements对性能有好处。 我们有一个Java应用程序,在这个应用程序中我们使用常规的“Statement”比使用“PreparedStatement”更多。 在尝试使用更多的PreparedStatements的同时,我正在尝试更全面地了解PreparedStatements如何工作 – 在客户端和服务器端。 因此,如果我们有一些典型的CRUD操作并在应用程序中重复更新对象,是否有助于使用PS? 我明白,我们将不得不每次closuresPS,否则会导致游标泄漏。 那么它对性能有什么帮助? 是否驱动caching预编译语句,并给我一个副本,下一次我做connection.prepareStatement? 还是DB服务器有帮助? 我理解有关PreparedStatements的安全性好处的争论,我赞赏下面强调它的答案。 不过,我真的希望继续关注PreparedStatements的性能优势。 更新:当我说更新数据时,我真的更多的是随机地多次调用这个方法。 我理解下面提供的答案中的优点,要求在循环中重新使用语句。 // some code blah blah update(); // some more code blah blah update(); …. public void update () throws SQLException{ try{ PreparedStatement ps = connection.prepareStatement("some sql"); ps.setString(1, "foobar1"); ps.setString(2, "foobar2"); ps.execute(); }finally { ps.close(); } } 没有办法真正重用'ps'java对象,我明白,实际的connection.prepareStatement调用是相当昂贵的。 这是什么使我回到原来的问题。 这是“一些SQL”的PreparedStatement仍然被caching和重用,我不知道的封面? 我还要提到,我们支持几个数据库。 提前致谢。