数据库管理员

希望提高数据库技能并向社区中的其他人学习的数据库专业人员的问答

1
MySQL中是否有“创建或替换过程”的替代方法?
MySQL是否有版本的“创建或替换过程”?我似乎无法执行此操作,或者在重新编译之前编写该过程的删除脚本(如果存在),而不会得到存储过程存在的错误消息。 DELIMITER $$ -- would love to be able to drop procedure if exists db.sp_tmp_90days; -- or use "create or replace" create procedure db.sp_tmp_90days() BEGIN drop table db.tmp_90days; create table db.tmp_90days ( user_name varchar(128), first_name varchar(50), last_name varchar(50), system varchar(10), last_login datetime ); alter table db.tmp_90days add index idx_user_name(user_name); alter …

2
如何加快选择特色?
我对某些时间序列数据有一个简单的选择: SELECT DISTINCT user_id FROM events WHERE project_id = 6 AND time > '2015-01-11 8:00:00' AND time < '2015-02-10 8:00:00'; 而且需要112秒。这是查询计划: http://explain.depesz.com/s/NTyA 我的应用程序必须执行许多不同的操作,并像这样计数。有没有更快的方法来获取此类数据?

2
PostgreSQL使用JSONB加入
我有这个SQL: CREATE TABLE test(id SERIAL PRIMARY KEY, data JSONB); INSERT INTO test(data) VALUES ('{"parent":null,"children":[2,3]}'), ('{"parent":1, "children":[4,5]}'), ('{"parent":1, "children":[]}'), ('{"parent":2, "children":[]}'), ('{"parent":2, "children":[]}'); 这将给: id | data ----+-------------------------------------- 1 | {"parent": null, "children": [2, 3]} 2 | {"parent": 1, "children": [4, 5]} 3 | {"parent": 1, "children": []} 4 | {"parent": …

1
仅使用psql恢复Postgres数据库:pg_restore -vs-
我正在使用pg_dump(以纯文本格式)转储Postgres数据库,然后仅通过使用psql(带有该-f选项)将其还原。 哪个问题出了问题:我是否没有通过使用pg_restore来丢失任何东西,而pg_restore看起来像是一种专门的还原工具(与通用相比psql)? 我可以通过使用pg_dump参数来控制诸如禁用触发器之类的选项。那么,这是pg_restore做什么用的呢?非纯文本转储格式?

1
用于postgreSQL的版本控制工具
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为数据库管理员Stack Exchange 的主题。 5年前关闭。 谁能为PostgreSQL建议一个基于Windows的版本控制工具。 致谢,GP

5
数据库事务和锁定之间的确切关系是什么?
本着提高我的知识水平提出的一个谦虚的问题。请您反应温和。 作为长期的应用程序开发人员,我在某种程度上知道事务是什么(我一直都在使用它们)。暂时不考虑事务隔离级别,在较高的级别上,事务允许一个工作块完全或根本不完成,并允许与其他数据库修改活动进行一定程度的隔离。 我还知道什么是锁(在各种数据库中),或者至少是一种行为(如果我以某种方式明确地锁定了一个表,那么任何其他进程或线程都无法更新该表的任何内容)。 我现在最明显的不明确的是:在各种数据库中,当我明确地锁定一行或一台,我在用人所使用的数据库的交易设施在幕后进行交易正常工作完全一样的结构? 也就是说,对我来说,为了使事务是原子的和隔离的,它必须进行一些锁定。这种由事务启动,隐藏迁移的锁定是否与各种数据库允许我通过诸如SELECT FOR UPDATE或显式LOCK命令之类的构造访问的锁定相同?还是这两个概念完全不同? 再次,我为这个问题的天真道歉。我很高兴被告知更多的基础资料。

1
为不同的SQL Server架构设置用户权限
我需要限制对特定用户的访问,但是他们仍然需要能够查看dbo拥有的表中的数据。 我正在尝试执行以下操作: dbo模式具有正常功能,可以访问所有内容 schema1模式只能访问schema1对象 如果schema1视图或存储过程访问dbo拥有的表中的数据,则权限链会适当 user1有权访问schema1,除此之外没有其他权限;#3除外 这是我尝试过的: 创建一个使用随机密码映射到测试登录名的user1用户 在dbo模式中创建了几个表,其中包含一些测试数据 创建一个schema1模式 创建一个schema1.get_profiles,该视图从一个名为schema1.profiles的视图中进行选择,该视图访问dbo.people,dbo.taglinks和dbo.tags中的数据 但是,以user1身份登录时使用以下语句: EXEC get_profiles 1 结果是: The SELECT permission was denied on the object 'tags', database 'schema_test', schema 'dbo'. 我已经尝试过WITH EXECUTE AS OWNER并且无法开始理解“所有权链接”应该如何工作。 我也尝试过 GRANT EXECUTE ON SCHEMA::schema1 TO user1 GRANT INSERT ON SCHEMA::schema1 TO user1 GRANT SELECT ON SCHEMA::schema1 …



7
源代码控制下的存储过程,最佳实践
我目前正在使用Tortoise SVN来对.NET Web应用程序进行源代码控制。将我们的SQL Server存储过程纳入Source Control的最佳方法是什么?我目前使用VS 2010作为开发环境,并使用SQL Server数据工具(SSDT)连接到内部SQL Server 2008 R2数据库。 我过去所做的就是将procs保存到.sql文件,并将此文件置于源代码控制下。我确定必须有比这更有效的方法?我可以在生产计算机上的VS2010,SSDT甚至SQL Server上安装扩展吗?


3
使用BOOLEAN而不是TINYINT(1)有什么好处?
从MySQL手册中说: 布尔,布尔 这些类型是TINYINT(1)的同义词。零值被认为是错误的。非零值被视为true: 我创建了一个BOOLEAN列,0并将其作为默认值。然后将值更新为2。从逻辑上讲,我希望MySQL接受一个0或1一个布尔值。但是,MySQL不会发出错误或阻止我执行更新。 如果BOOLEAN的工作方式与TINYINT(1)完全相同,那么我使用TINYINT(1)还是BOOLEAN会有什么不同吗?
16 mysql  datatypes 

2
根据最大日期返回包含多行的结果集
我有一个子表是这样的: [客户日期表] | Customer ID | Some Date | Balance | +-------------+------------+---------+ | 1 | 2012-04-30 | 20.00 | | 1 | 2012-03-31 | 50.00 | | 2 | 2012-04-30 | 0.00 | | 2 | 2012-03-31 | 10.00 | | 3 | 2012-03-31 | 60.00 | | 3 | …
16 sql-server 

1
表填充因子和索引填充因子之间的区别
在Postgres中,可以为索引和表设置fillfactor。有什么区别?如何确定两者的值。有哪些用例? 我正在尝试在空间索引上聚类空间关系。它有几百万条记录。尽管每天都会创建很少的新记录,但是记录会一直更新。 用例是空间范围查询。表填充因子和/或索引填充因子的合适值是什么?
16 postgresql 

3
比较可以包含NULL的列-有没有更优雅的方法?
我知道您不能将值与NULL进行比较,而不能在不添加以下代码的情况下期望结果... SELECT * FROM A INNER JOIN B ON A.ID = B.ID WHERE A.STRING <> B.STRING OR (A.STRING IS NULL AND B.STRING IS NOT NULL) OR (A.STRING IS NOT NULL AND B.STRING IS NULL) OR A.DT <> B.DT OR (A.DT IS NULL AND B.DT IS NOT NULL) OR (A.DT IS …
16 sql-server  null 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.