Database
YapingXin
航天/航空/军工装备行业,航电系统、遥测/测发控系统、系统故障诊断、预测与健康管理(PHM)高级系统架构师。
展开
-
Postgresql 触发器一例
Postgresql 没有防触发器递归调用的机制。这一点远远没有SQL Server方便。不过程序员可以自己在PL/SQL语句中实现。倒也无碍。原创 2011-03-21 09:16:00 · 7267 阅读 · 0 评论 -
SQL Server: collation conflict between "Chinese_PRC_CI_AS" and "SQL_Latin1_General_CP1_CI_AS"
Issue: Cannot resolve the collation conflict between "Chinese_PRC_CI_AS" and "SQL_Latin1_General_CP1_CI_AS" in the equal to operation.Issue在某跨国企业,有一天,DBA在北京这边建立了一个用于测试的数据库服务器,这个DB Server我们就称为原创 2014-03-13 12:06:53 · 12087 阅读 · 2 评论 -
SQL Tips: How to detect duplicate rows in table
For example:-- O: Original table-- D: Duplicate records tableselect O.*, D.RecCountfrom tblFunctionality Oinner join ( select FunctionalityName, IsGroup, ParentId, COUNT(*) AS RecCount from原创 2013-09-06 08:19:35 · 2265 阅读 · 0 评论 -
SQL Server: Add column with default value and description in T-SQL
假设我要在表 dbo.tblBinaryCommand 中添加一个新字段 ProtocolId,并且在添加字段的时候指定数据类型为 bigint,不允许为空,默认值为 -1,我还想给这个字段加一段Description,如下:Message protocol id refer to Protocol definition table tblProtocol column ProtocolId.原创 2012-07-19 20:09:01 · 3325 阅读 · 0 评论 -
SQL Server: T-SQL Alternative to 'CREATE OR REPLACE' in PL/SQL
'CREATE OR REPLACE' SQL statement is used widely in PL/SQL (supported in Oracle, PostgreSQL, etc). It is very useful in SQL script files which help user to build up database objects.But in T-SQL (su原创 2012-06-12 16:31:56 · 1847 阅读 · 0 评论 -
SQL Server: Why Scope_Identity() vs @@identity
In SQL Server we have 3 methods to get the auto-generated identity:1. IDENT_CURRENT(‘tablename’)2. @@IDENTITY3. SCOPE_IDENTITY() But the methods above have some difference:原创 2012-06-04 17:38:51 · 1167 阅读 · 0 评论 -
SQL Server:INFORMATION_SCHEMA.columns vs sys.columns vs syscolumns
首先,sys.columns vs syscolumns,这个自不必多说。sys.columns是SQL Server从2005版本起引入的新的系统级视图。相关链接如下:Mapping SQL Server 2000 System Tables to SQL Server 2005 System Viewshttp://technet.microsoft.com/en-us/lib原创 2012-05-31 18:24:51 · 4406 阅读 · 0 评论 -
SQL Server:验证数据库备份文件
最近有一次,在从一份数据库备份文件(.bak)时,遇到了以下错误:The media family on device is incorrectly formed. SQL Server cannot process this media family Error: 3241遇到这样的错误,可能是由两种原因引起的:(1) 在高版本的SQL Server数据库中备份得到备份文件,然后试图在低原创 2012-05-28 04:04:56 · 3908 阅读 · 0 评论 -
在Windows Server上安装Postgresql的注意事项
有这么几项需要注意的地方,和大家分享一下,如果有需要补充的地方欢迎您留言讨论:一、如果是在远程桌面(基于RDP协议、Terminal Services服务的Remote Desktop)中安装,需要注意的是,Postgresql的service无法在Windows 2008及以上Windows版本的Terminal Service会话中启动,所以安装前需要用mstsc /console原创 2011-08-01 01:24:46 · 4776 阅读 · 4 评论 -
用 sqlite3.dll 和 sqlite3.def 生成 sqlite3.lib
在 SQLite 官方网站 Sqlite.org 上,我们可以下载到 SQLite3.dll 。为了能够在C语言中以静态链接库的方式使用SQLite,我们需要得到SQLite3.lib。如何得到呢?解决方法:从 .dll 和 .def 文件生成 .lib,我们需要一个命令行工原创 2011-10-15 15:39:38 · 7171 阅读 · 1 评论 -
Postgresql: UUID的使用
默认安装的 Postgresql 是不带 UUID 函数的,为了生成一个 UUID,我们不得不在客户端生成。其实在 Postgresql 的安装目录下已经存在这样的函数定义,我们只需将其 import 进来即可。在安装目录的 share/contrib 下面,可以找到 uuid-ossp.sql,使用以下命令:psql -d pisces -U postgres -f D:/Service/PostgreSQL/9.0/share/contrib/uuid-ossp.sql参数说明:-d: 数据库名-U原创 2011-04-26 18:40:00 · 20578 阅读 · 3 评论 -
配置 Postgresql 远程访问
环境:Debian 6.0.0 + Postgresql 8.4.7Postgresql 是用 dpkg -i 命令默认安装的,其余安装方式的文件路径可能会不同。一、编辑 pg_hba.conf,配置用户的访问权限vi /etc/postgresql/8.4/main/pg_hba.conf如下:# "local" is for Unix domain socket connections onlylocal all all原创 2011-04-15 14:35:00 · 7921 阅读 · 0 评论 -
Postgresql: 解决无法安装uuid-ossp的问题
<br />在一台 Debian Linux 6.0 + Postgresql 9.0.x 服务器上,安装 uuid-ossp :<br />psql -d sedb -U postgres -f /opt/postgres/9.0/share/postgresql/contrib/uuid-ossp.sql<br /> <br />结果出错了。我忘了把报错信息保存下来了,大致是这个样子的:<br />ERROR: could not access file “$libdir/uuid-ossp”: No原创 2011-05-24 16:16:00 · 13143 阅读 · 1 评论 -
Postgresql: 动态SQL语句中不能使用Select into?
下面是出错的存储过程:CREATE or Replace FUNCTION func_getnextbigid( tablename varchar(240), idname varchar(20) default 'id')RETURNS bigint AS $funcbody$Declare sqlstring varchar(240); currentId bigint;Begin sqlstring:= 'select max("' ||原创 2011-03-24 11:33:00 · 8123 阅读 · 0 评论 -
Example of PL/pgSQL: 在用户自定义函数中用 Return Query 返回一个表
<br />环境:PostgreSQL 8.4.7<br /> <br />直接贴代码,不解释:<br /> <br />CREATE or Replace FUNCTION func_task_get_devicerule_devicelist( mf_comp integer, mf_id integer, md_comp integer, md_id integer, sdk_comp integer, sdkv integer)RETU原创 2011-03-26 13:41:00 · 4296 阅读 · 0 评论 -
Example: Create function in Postgresql
创建用户自定义函数或者存储过程,这种事在SQL Server下面我们已经司空见惯了。但是在Postgresql下,我们还是要熟悉一下PL/pgSQL的语法。相关表结构:写一个Function来插入suiteId和caseId,保证这两个Id都能正确关联到TestSuite表和TestCase表:Create or Replace function func_TestSuite_AddTestCase(sid INTEGER, cid INTEGER) returns INTEGER as $funcbody原创 2011-03-23 00:34:00 · 3325 阅读 · 0 评论 -
一点体会:T-SQL与PL/SQL的区别
<br />最近一直在折腾PL/SQL。以前没搞过PL/SQL,全仗着自己对T-SQL熟,从二者的差异中学习。目前的一点体会:PL/SQL更灵活更强大,但因为过于灵活而更易出错。T-SQL很友好,略少了那么一点灵活,但也减少了很多出错的机会。完全是两种不同的文化。原创 2011-03-25 15:47:00 · 3261 阅读 · 0 评论 -
推荐几个好用且免费的SQLite图形化管理工具
下面推荐的这几个SQLite图形化管理工具,都是可以在商业用途中免费使用的:SQLiteSpyWebsite: http://www.yunqa.de/delphi/doku.php/products/sqlitespy/index只有Windows版。授权:作者是这样说的:SQLiteSpy is Freeware for personal and e原创 2014-03-26 11:36:53 · 29291 阅读 · 1 评论