我在中添加了数据库配置build.gradle
liquibase {
activities {
main {
changeLogFile "${this.rootDir}/src/main/resources/changelog-master.xml"
url "jdbc:postgresql://localhost:5432/test?createDatabaseIfNotExist=true"
username "xxxx"
password "xxxx"
}
}
runList = 'main'
}
Run Code Online (Sandbox Code Playgroud)
createDatabaseIfNotExist在 URL 中设置为 true。
当我启动服务器时,它给出数据库不存在。
我希望 liquibase 创建数据库(如果它不存在)。
有什么建议请
我正在尝试编写一个 bash 脚本来创建 Postgres 数据库,以及访问该数据库的用户和用户权限。我正在使用 Postgres 9.6。我有以下...
create_db_command="SELECT 'CREATE DATABASE $DB_NAME' WHERE NOT EXISTS (SELECT FROM pg_database WHERE datname = '$DB_NAME')\gexec"
drop_owned_by_command="DROP OWNED BY $DB_USER;"
drop_role_command="DROP ROLE IF EXISTS $DB_USER;"
create_user_command="create user $DB_USER with encrypted password '$DB_PASS';"
grant_privs_command="grant all privileges on database $DB_NAME to $DB_USER;"
PGPASSWORD=$ROOT_PASSWORD
# This command creates the db if it doesn't already exist
echo "SELECT 'CREATE DATABASE $DB_NAME' WHERE NOT EXISTS (SELECT FROM pg_database WHERE datname = '$DB_NAME')\gexec" | psql -U$PG_USER
psql -U$PG_USER $DB_NAME -c "$drop_owned_by_command" …Run Code Online (Sandbox Code Playgroud) 该代码不起作用。谁能指导我在哪里可以找到使用C#快速创建Postgresql数据库和表的示例?
const string connStr = "Server=localhost;Port=5432;
User Id=postgres;Password=enter;Database=postgres";
var m_conn = new NpgsqlConnection(connStr);
// creating a database in Postgresql
m_createdb_cmd = new NpgsqlCommand("CREATE DATABASE IF NOT EXISTS \"testDb\" " +
"WITH OWNER = \"postgres\" " +
"ENCODING = 'UTF8' " +
"CONNECTION LIMIT = -1;", m_conn);
// creating a table in Postgresql
m_createtbl_cmd = new NpgsqlCommand(
"CREATE TABLE MyTable(CompanyName VARCHAR(150))";
m_conn.Open();
m_createdb_cmd.ExecuteNonQuery();
m_createtbl_cmd.Connection = m_conn;
m_conn.Close();
Run Code Online (Sandbox Code Playgroud)
数据库已创建,但是在创建表时出现静默失败。
我正在使用PostgreSQL和Spring 4,希望我的应用在运行时自动创建数据库。
我的实体类是:
@Entity
@Table(name = "user", schema = "public")
public class User extends BaseEntity {
private Integer id;
private String name;
private Integer contractId;
public User() {
}
public User(Integer id) {
super(id);
}
@Id
@Column(name = "usr_id", nullable = false)
@GeneratedValue(strategy= GenerationType.IDENTITY)
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
@Basic
@Column(name = "usr_name", nullable = true, length = -1)
public String getName() {
return name;
}
public void setName(String …Run Code Online (Sandbox Code Playgroud) 我必须显示这样的表格:
| 年 | 月 | 发表 | 没送到 | 没收到 |
|---|---|---|---|---|
| 2021年 | 扬 | 10 | 86 | 75 |
| 2021年 | 二月 | 13 | 36 | 96 |
| 2021年 | 行进 | 49 | 7 | 61 |
| 2021年 | 四月 | 3 | 21 | 72 |
使用此查询生成的原始数据:
SELECT
year,
TO_CHAR( creation_date, 'Month') AS month,
marking,
COUNT(*) AS count
FROM invoices
GROUP BY 1,2,3
Run Code Online (Sandbox Code Playgroud)
我尝试过使用crosstab()但出现错误:
SELECT * FROM crosstab('
SELECT
year,
TO_CHAR( creation_date, ''Month'') AS month,
marking,
COUNT(*) AS count
FROM invoices
GROUP BY 1,2,3
') AS ct(year text, month text, marking text)
Run Code Online (Sandbox Code Playgroud)
我不想手动输入所有标记值,因为它们很多。
Run Code Online (Sandbox Code Playgroud)ERROR: invalid source data SQL …
postgresql pivot-table dynamic-sql crosstab postgres-crosstab
我正在尝试以 C# 编程方式创建一个 postGres 数据库,之前我已经手动创建了数据库,并使用连接字符串来打开它并对其进行操作,并且它运行良好。
现在我必须首先检查该 DBB 是否已经存在,如果不存在,则首先创建它,然后执行其他操作,例如读取写入它。
我这样做的代码是:
internal void createDataBaseIfDoNotExist()
{
string connStr = string.Empty;
connStr =
"Server=" + "localhost"
+ ";Port=" + "5432"
+ ";User Id=" + "openpg"
+ ";Password=" + "oppwd"
+ ";";
var m_conn = new NpgsqlConnection(connStr);
var m_createdb_cmd = new NpgsqlCommand(@"CREATE DATABASE IF NOT EXISTS testDb ;", m_conn);
try
{
m_conn.Open();
m_createdb_cmd.ExecuteNonQuery();
m_conn.Close();
}
catch (Exception ex)
{
MessageBox.Show("Errr on createDataBaseIfDoNotExist query :" + ex);
}
}
And it gives followign error:
database "openpg" …Run Code Online (Sandbox Code Playgroud) 我想加载cube扩展,但它可能已经加载了。所以我这样做
CREATE EXTENSION IF NOT EXISTS cube;
Run Code Online (Sandbox Code Playgroud)
文档说,当指定 IF NOT EXISTS 时,它不应该抛出错误。但它确实:
ff_postgres_1 | 2020-07-26 18:15:46.233 UTC [33] ERROR: duplicate key value violates unique constraint "pg_extension_name_index"
ff_postgres_1 | 2020-07-26 18:15:46.233 UTC [33] DETAIL: Key (extname)=(cube) already exists.
ff_postgres_1 | 2020-07-26 18:15:46.233 UTC [33] STATEMENT:
ff_postgres_1 | CREATE EXTENSION IF NOT EXISTS cube;
Run Code Online (Sandbox Code Playgroud)
我在这里做错了什么?我正在运行 PostgreSQL 12.3
postgresql ×6
c# ×2
database ×2
java ×2
build.gradle ×1
crosstab ×1
ddl ×1
dynamic-sql ×1
gradle ×1
hibernate ×1
liquibase ×1
mysql ×1
npgsql ×1
pivot-table ×1
privileges ×1
psql ×1
roles ×1
spring ×1
sql ×1