您好,我对 PostgreSQL/PostGIS 非常陌生,刚刚按照本教程学习了如何将 Shapefiles 转换为 SQL 文件并使用 shp2pgsql 将其导入到 PostGIS 。我注意到,每当我转换 Shapefile 时,它都会生成一个包含 CREATE TABLE 语句的 SQL 文件。现在我的问题是,有没有办法或者甚至可以将新的形状文件(带有新的图层组)插入到现有的表中,而不是创建一个新的表?
我希望我解释得很好。谢谢。
当我 SELECT * 或提交对此特定数据库的任何查询时,pgadmin 返回的所有行都是 1000 行,即使有超过 225000 行。自从我导入数据但突然开始以来,情况并非如此,我不确定原因。我有最新版本(4.23)。在另一个拥有超过 1000 行的数据库上不会发生这种情况。行限制下拉菜单显示为灰色。我已经检查了文档中的答案,并检查了其他地方的类似问题,但我没有找到任何答案。有什么建议么?
我刚刚将我的 ubuntu 发行版从 20.10 升级到 21.04。在此过程中,我的本地 postgres 服务器已从 12.x 升级到 13.4
我的本地应用程序仍在运行,但 PGAdmin 将不再启动。这是日志:
pgAdmin Runtime Environment
--------------------------------------------------------
Python Path: "/usr/pgadmin4/venv/bin/python3"
Runtime Config File: "/home/julien/.config/pgadmin/runtime_config.json"
pgAdmin Config File: "/usr/pgadmin4/web/config.py"
Webapp Path: "/usr/pgadmin4/web/pgAdmin4.py"
pgAdmin Command: "/usr/pgadmin4/venv/bin/python3 -s /usr/pgadmin4/web/pgAdmin4.py"
Environment:
- GJS_DEBUG_TOPICS: JS ERROR;JS LOG
- LC_TIME: fr_FR.UTF-8
- USER: julien
- XDG_SESSION_TYPE: wayland
- SHLVL: 0
- HOME: /home/julien
- OLDPWD: /home/julien
- DESKTOP_SESSION: ubuntu
- GIO_LAUNCHED_DESKTOP_FILE: /usr/share/applications/pgadmin4.desktop
- GTK_MODULES: gail:atk-bridge
- GNOME_SHELL_SESSION_MODE: ubuntu
- LC_MONETARY: fr_FR.UTF-8
- MANAGERPID: 2723
- …Run Code Online (Sandbox Code Playgroud) 我想解锁下图中出现的列:
https://i.stack.imgur.com/3F7cb.png
我知道答案是让 id 成为主键。但这里的问题是我无法将 id 设置为主键,因为 id 列中有两行为空,并且我无法删除这些行,因为列已锁定!请尝试帮助我。非常感谢
当我将pgAdmin III连接到Herkou上的PostgreSQL时,它说:"服务器缺少仪器功能......"
如何在Heroku上安装这些功能 - 在一个像黑盒子的服务器上?
我需要将英文和阿拉伯文本插入PostgreSQL数据库.
我通过.bat脚本运行以下命令:
psql.exe --echo-all --username=postgres --dbname=dbname -f populate.sql
Run Code Online (Sandbox Code Playgroud)
populate.sql 有这样的陈述:
insert into table1 (column1, column2) VALUES (2, '???????? ');
Run Code Online (Sandbox Code Playgroud)
如果我通过pgadmin这样做,它可以工作.问题是我需要通过一些启动应用程序后运行的.sql填充脚本来完成此操作.
在那种情况下,我得到了胡言乱语,像这样:
العرض
我使用该Encode in UTF-8 without BOM选项在Notepad ++中创建了脚本,因为UTF-8中的常规编码在文件的开头添加了一个额外的字符,并且没有进行某些插入.
我假设这是一个编码问题,但我还没弄清楚到底出了什么问题.数据库采用UTF-8格式.
提前致谢!
我有包含bytea列的IMAGE表.bytea列的值可以为null.我在这个表中有三行:
当我在pgAdmin中查看此表中的数据时,我看到:

从输出我不知道哪一行包含bytea列中的二进制数据,哪一行不包含.当我运行SQL时选择:
select id, name, data from image;
Run Code Online (Sandbox Code Playgroud)
我得到以下结果,我可以说id 2的行包含一些二进制数据,但我无法区分其他行(id为1和3的行)是否有一些数据或为null:

问题
为了澄清,我附上了Java测试代码,用于保存和从IMAGE表中检索数据.Image small.png的大小为460B,large.png的大小为4.78KB.
private static final String JDBC_POSTGRESQL = "jdbc:postgresql://localhost/testDB?user=username&password=passwd";
private static File[] files = {new File("small.png"), new File("large.png")};
public static void main(String[] args) {
// stores just the string
try (Connection con = DriverManager.getConnection(JDBC_POSTGRESQL)) {
PreparedStatement ps = con.prepareStatement("insert into image (name) values (?)");
ps.setString(1, "some string");
ps.executeUpdate();
} catch (SQLException e1) {
e1.printStackTrace();
}
// store images
for …Run Code Online (Sandbox Code Playgroud) 我正在开始使用Sequelize。我正在关注他们在其网站上提供的文档:http : //docs.sequelizejs.com/manual/installation/getting-started.html
const Sequelize = require('sequelize');
const sequelize = new Sequelize('haha', 'postgres', 'postgres', {
host: 'localhost',
dialect: 'postgres',
operatorsAliases: false,
pool: {
max: 5,
min: 0,
acquire: 30000,
idle: 10000
},
// SQLite only
storage: 'path/to/database.sqlite'
});
sequelize
.authenticate()
.then(() => {
console.log('Connection has been established successfully.');
})
.catch(err => {
console.error('Unable to connect to the database:', err);
});
const User = sequelize.define('user', {
firstName: {
type: Sequelize.STRING
},
lastName: {
type: Sequelize.STRING
}
});
// force: true …Run Code Online (Sandbox Code Playgroud) 所以这个查询很简单:
SELECT * FROM [schema_name].[table_name]
WHERE [schema_name].[table_name].[field_name] = 'search_value';
Run Code Online (Sandbox Code Playgroud)
在Transact-SQL中,可以为“ search_value”创建一个变量:
DECLARE @find varchar(30) = 'search_value';
SELECT * FROM [schema_name].[table_name]
WHERE [schema_name].[table_name].[field_name] = @find;
Run Code Online (Sandbox Code Playgroud)
甚至重新使用变量:
SET @find = 'new_search_value';
Run Code Online (Sandbox Code Playgroud)
我现在已经尽一切努力在PostgreSQL中模仿它,但是我无法使其正常工作。
有什么建议么???
pgadmin ×10
postgresql ×8
heroku ×1
javascript ×1
node.js ×1
postgis ×1
sequelize.js ×1
shapefile ×1
sql ×1
ubuntu ×1
unlock ×1
utf-8 ×1
variables ×1