我需要编写一个删除PostgreSQL数据库的脚本.它可能有很多连接,但脚本应该忽略它.
DROP DATABASE db_name
当存在打开的连接时,标准查询不起作用.
我该如何解决这个问题?
是否可以读取UIImageView's
UIImage
目前存储在UIImageView
?的名称?
我希望你能做一些像这样的事,但还没弄明白.
NSString *currentImageName = [MyIImageView getFileName];
Run Code Online (Sandbox Code Playgroud) 如何通过知道名称在Postgresql中删除约束名称?我有一个由第三方脚本自动生成的约束列表.我需要删除它们而不知道表名只是约束名.
我想update function
在postgresql中创建一个(存储过程),我在google上搜索了很多次,但没有找到更新函数(存储过程)的正确示例.如何在Postgresql中编写更新函数并更改表中的现有数据?
提前致谢.
Example of Function
CREATE OR REPLACE FUNCTION updateuser_login(userloginidp integer, usercategoryidf integer, usertypeidf integer, usertypereferenceidf integer, loginname text, loginpassword text, menutypeidf integer, username text, dashboardconfig text, careprovideridf integer, isactive boolean)
RETURNS void AS
$BODY$BEGIN
UPDATE tbuserlogin
SET usercategoryidf="@usercategoryidf",
usetypeidf="@usertypeidf",
usertypereferenceidf="@usertypereferenceidf",
loginname="@loginname",
loginpassword="@loginpassword",
menutypeidf="@menutypeidf",
username="@username",
dashboardconfig="@dashboardconfig",
careprovideridf="@careprovideridf",
isactive="@isactive"
WHERE userloginidp = "@userloginidp";
END$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION updateuser_login(integer, integer, integer, integer, text, text, integer, text, text, integer, boolean)
OWNER TO postgres;
Run Code Online (Sandbox Code Playgroud) 在2.0中,添加了一个名为LiquiBased Formatted SQL的非常好的方法.有关信息,请参阅此链接http://blog.liquibase.org/2010/05/liquibase-formatted-sql.html.
当我尝试向我的脚本添加一个rollback命令时,在我的情况下,删除了一个创建的视图,LiquiBase会抛出一个错误.这是我的剧本.
--liquibase formatted sql
--changeset PeterPan:REQ111111
CREATE VIEW all_employees AS
SELECT *
FROM employee;
--rollback
DROP VIEW all_employees;
--rollback
Run Code Online (Sandbox Code Playgroud)
我也试过这个
--liquibase formatted sql
--changeset PeterPan:REQ111111
CREATE VIEW all_employees AS
SELECT *
FROM employee;
--rollback
DROP VIEW all_employees;
Run Code Online (Sandbox Code Playgroud)
这是我的命令行输入和我得到的输出.注意我做了更新成功,然后回滚失败了.还要记住,只要脚本抛出异常,视图就会被删除.如果我从构建中删除我的视图并运行相同的命令,则更新和回滚都会成功完成.
C:\>liquibase --driver=org.postgresql.Driver --classpath="C:/Program Files/Java/jdk1.6.0_23/lib/postgresql-9.0-801.jdbc4.jar" --url="jdbc:postgresql:/
/localhost:5432/test_db_build" --changeLogFile=C:/DbSource/Common/00_main_changelog.xml --username=postgres --password=password update
INFO 3/3/11 10:05 AM:liquibase: Successfully acquired change log lock
INFO 3/3/11 10:05 AM:liquibase: Reading from databasechangelog
INFO 3/3/11 10:05 AM:liquibase: Reading from databasechangelog
INFO 3/3/11 10:05 AM:liquibase: …
Run Code Online (Sandbox Code Playgroud) 我知道我可以这样定义登录的 search_path 变量:
ALTER ROLE myrole SET search_path=public, foo, bar;
Run Code Online (Sandbox Code Playgroud)
但如果我使用大量登录名,我也会使用组(pgadmin 中的组实际上是角色)。我想在组级别定义 search_path 变量,因此我删除了之前的 SET 并改为写道:
ALTER ROLE mygroup SET search_path=public, foo, bar;
Run Code Online (Sandbox Code Playgroud)
只需将登录定义为该组的成员即可
GRANT mygroup TO myrole
Run Code Online (Sandbox Code Playgroud)
现在,SHOW search_path;
只显示默认的搜索路径"$user",public
。有没有办法为组级别定义变量(继承也是如此)?
我在使用Liquibase版本:2.0.1.
是否可以在格式化的sql文件中具有前置条件?如果是这样的话?一个例子将不胜感激.
我想做这样的事情,但在sql格式的文件.
<preConditions onFail="WARN">
<sqlCheck expectedResult="0">select count(*) from oldtable</sqlCheck>
</preConditions>
Run Code Online (Sandbox Code Playgroud) 我需要在同一个表上的ANTI-JOIN(不存在来自表的SELECT东西... /左连接表WHERE table.id IS NULL).实际上我有一个索引来提供不存在的问题,但查询规划器选择使用位图堆扫描.
该表有1亿行,因此进行堆扫描时搞砸了......
如果Postgres可以与指标进行比较,那将会非常快.Postgres是否必须访问此ANTI-JOIN的表格?
我知道必须在某个时候访问该表以服务MVCC,但为什么这么早呢?不能只用桌子来固定,因为它可能会遗漏一些东西吗?
我需要为iPhone创建一个应用程序,它将使用libpq连接到PostgreSQL 8.4数据库.问题是我无法获得一个链接到libpq进行编译的简单iPhone.然而,我能够获得相当于常规Mac桌面应用程序的应用程序来编译和连接到PostgreSQL而没有任何问题.我在Snow Leopard上运行Xcode 3.2.
我正在为arm和x86_84构建libpq.arm构建适用于真正的iPhone,x86_64适用于iPhone模拟器.然后我创建一个包含两个文件的胖二进制文件,最后得到一个名为libpq的文件.这个文件是我在常规Mac应用程序中使用的文件,它工作正常,并在尝试构建iPhone应用程序时导致问题.
这是我构建libpq时的构建脚本.
#!/bin/bash
DEVROOT=/Developer/Platforms/iPhoneOS.platform/Developer
SDKROOT=$DEVROOT/SDKs/iPhoneOS3.0.sdk
rm -rf /Users/bob/mylibs
mkdir /Users/bob/mylibs #Store there compiled libs
make clean
#Build ARM library
./configure --host=arm-apple-darwin --without-readline --disable-ipv6 CC=$DEVROOT/usr/bin/arm-apple-darwin9-gcc-4.0.1 CPPFLAGS="-I$SDKROOT/usr/lib/gcc/arm-apple-darwin9/4.0.1/include/ -I$SDKROOT/usr/include/" CFLAGS="$CPPFLAGS -arch armv6 -pipe -no-cpp-precomp -isysroot $SDKROOT" CPP="$DEVROOT/usr/bin/cpp $CPPFLAGS" LD=$DEVROOT/usr/bin/ld
make -C src/interfaces/libpq
cp /Users/bob/Downloads/postgresql-8.4.1/src/interfaces/libpq/libpq.a /Users/bob/mylibs/libpq.arm
#Then build i386 library
make clean && ./configure && make -C src/interfaces/libpq
cp src/interfaces/libpq/libpq.a /Users/bob/mylibs/libpq.i386
#Then make fat binary
$DEVROOT/usr/bin/lipo -arch armv6 /Users/bob/mylibs/libpq.arm -arch x86_64 /Users/bob/mylibs/libpq.i386 -create -output /Users/bob/mylibs/libpq
Run Code Online (Sandbox Code Playgroud)
当我尝试从Xcode中编译iPhone应用程序时,这是构建日志.
Build iPhonePg of project …
Run Code Online (Sandbox Code Playgroud) postgresql ×6
liquibase ×2
anti-join ×1
database ×1
indexing ×1
ios ×1
libpq ×1
objective-c ×1
roles ×1
search-path ×1
swift ×1
uiimage ×1
uiimageview ×1
xcode ×1