相关疑难解决方法(0)

MySQL中架构/数据库之间的区别

MySQL中的模式和数据库之间有区别吗?在SQL Server中,数据库是与模式相关的更高级别的容器.

我读过这篇文章Create SchemaCreate Database在MySQL中做了同样的事情,这使我相信模式和数据库对于相同的对象来说是不同的单词.

mysql database schema database-schema

261
推荐指数
6
解决办法
19万
查看次数

连接字符串中的Trusted_Connection和Integrated Security有什么区别?

我很好奇SQL Server连接字符串中的令牌"Trusted_Connection"和"Integrated Security"之间有什么区别(我相信其他数据库/驱动程序不支持这些).我明白他们是等同的.

sql-server connection-string

71
推荐指数
2
解决办法
3万
查看次数

目录,架构,用户和数据库实例之间的关系

要比较不同供应商(Oracle,SQL Server,DB2,MySQL和PostgreSQL)的数据库,如何唯一地识别任何对象,我是否需要目录?例如,在Java的DatabaseMetadata中,我应该至少指定目录和模式fooPattern.

目录只是数据存储的抽象是真的吗?

mysql sql-server oracle db2 postgresql

57
推荐指数
2
解决办法
4万
查看次数

Postgresql表存在,但在查询时得到"关系不存在"

我有一个带有许多表的postgresql数据库.如果我查询:

SELECT column_name
FROM information_schema.columns
WHERE table_name="my_table";
Run Code Online (Sandbox Code Playgroud)

我将获得正确返回的列的列表.

但是,当我查询时:

SELECT *
FROM "my_table";
Run Code Online (Sandbox Code Playgroud)

我收到错误:

(ProgrammingError) relation "my_table" does not exist
'SELECT *\n    FROM "my_table"\n' {}
Run Code Online (Sandbox Code Playgroud)

有关为什么我可以获取列,但无法查询表的任何想法?目标是能够查询表.

sql postgresql

55
推荐指数
5
解决办法
12万
查看次数

如何使用flyway创建数据库?

问题:是否可以在迁移脚本中创建新数据库然后连接到该数据库?怎么样?

我的场景: 我正在尝试在我的Java项目中使用flyway(使用Jersey2.4 + tomcat 7 + PostgreSQL 9.3.1 + EclipseLink的RESTful应用程序)来管理使用git的不同开发人员之间的变化.我编写了我的init脚本并运行它:

PGPASSWORD='123456' psql -U postgres -f migration/V1__initDB.sql
Run Code Online (Sandbox Code Playgroud)

它工作得很好.问题是我不能用我的脚本创建新的数据库.当我在我的脚本中包含以下行时:

CREATE DATABASE my_database OWNER postgres ENCODING 'UTF8';
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

org.postgresql.util.PSQLException: ERROR: CREATE DATABASE cannot run inside a transaction block
    at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2157)
    at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1886)
    at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:255)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:555)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:403)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:395)
    at com.googlecode.flyway.core.dbsupport.JdbcTemplate.executeStatement(JdbcTemplate.java:230)
    at com.googlecode.flyway.core.dbsupport.SqlScript.execute(SqlScript.java:89)
    at com.googlecode.flyway.core.resolver.sql.SqlMigrationExecutor.execute(SqlMigrationExecutor.java:72)
    at com.googlecode.flyway.core.command.DbMigrate$2.doInTransaction(DbMigrate.java:252)
    at com.googlecode.flyway.core.command.DbMigrate$2.doInTransaction(DbMigrate.java:250)
    at com.googlecode.flyway.core.util.jdbc.TransactionTemplate.execute(TransactionTemplate.java:56)
    at com.googlecode.flyway.core.command.DbMigrate.applyMigration(DbMigrate.java:250)
    at com.googlecode.flyway.core.command.DbMigrate.access$700(DbMigrate.java:47)
    at com.googlecode.flyway.core.command.DbMigrate$1.doInTransaction(DbMigrate.java:189)
    at com.googlecode.flyway.core.command.DbMigrate$1.doInTransaction(DbMigrate.java:138)
    at com.googlecode.flyway.core.util.jdbc.TransactionTemplate.execute(TransactionTemplate.java:56)
    at com.googlecode.flyway.core.command.DbMigrate.migrate(DbMigrate.java:137)
    at com.googlecode.flyway.core.Flyway$1.execute(Flyway.java:872)
    at com.googlecode.flyway.core.Flyway$1.execute(Flyway.java:819)
    at com.googlecode.flyway.core.Flyway.execute(Flyway.java:1200)
    at …
Run Code Online (Sandbox Code Playgroud)

java database postgresql jdbc flyway

30
推荐指数
3
解决办法
3万
查看次数

错误:"表中没有键..."

我有一个表格,其中包含一个字符变化(12)字段,这是它的PRIMARY KEY.我跑了这个查询

SELECT * FROM bg WHERE bg_id ='470370111002'
Run Code Online (Sandbox Code Playgroud)

它从表中选择一行.一切看起来都不错 然后我试试.

INSERT INTO csapp_center_bgs(bg_id,center_id) VALUES('470370111002',2)
Run Code Online (Sandbox Code Playgroud)

bg_id上有一个外键,看起来像......

ALTER TABLE csapp_center_bgs
ADD CONSTRAINT csapp_center_bgs_bg_id_65c818f360c84dc5_fk_bg_bg_id
FOREIGN KEY (bg_id)
REFERENCES tiger.bg (bg_id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION DEFERRABLE INITIALLY DEFERRED;
Run Code Online (Sandbox Code Playgroud)

这是精确的错误......

    ERROR:  insert or update on table "csapp_center_bgs" violates foreign key constraint "csapp_center_bgs_bg_id_65c818f360c84dc5_fk_bg_bg_id"
DETAIL:  Key (bg_id)=(470370111002) is not present in table "bg".
********** Error **********

ERROR: insert or update on table "csapp_center_bgs" violates foreign key constraint "csapp_center_bgs_bg_id_65c818f360c84dc5_fk_bg_bg_id"
SQL state: …
Run Code Online (Sandbox Code Playgroud)

postgresql inheritance constraints foreign-keys search-path

5
推荐指数
1
解决办法
8819
查看次数

R:将完整的数据库从SQL Server复制/克隆到本地

在R中,我与此数据库具有SQL Server连接:

在此处输入图片说明

这个答案,我知道这些水平是catalogs (=databases), schemas, and tables。如下代码:

library(odbc)
library(DBI)
library(RSQlite)
library(dbi)
confull <- odbc::dbConnect(odbc(), 
                           Driver = "SQL Server", 
                           Server = "XXX")
odbcListObjects(confull, schema="schema")
Run Code Online (Sandbox Code Playgroud)

产量:

         name    type
1     DBAInfo catalog
2 InBluePrism catalog
3      master catalog
4        msdb catalog
5      tempdb catalog
Run Code Online (Sandbox Code Playgroud)

问题:

  1. 我如何提取此数据库的完整结构树,而不仅是catalogs
  2. 如何通过编程方式将整个数据库(包括所有表,模式和目录)保存(克隆)到本地SQLite表中?

对于第一个问题,我尝试了以下方法:

> all_schemas <- DBI::dbGetQuery(confull, "SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA")
> all_schemas
                SCHEMA_NAME
1                       dbo
2                     guest
3        INFORMATION_SCHEMA
4                       sys
5              CCAutomation
6      XXXXXX\\xxxAdmin
7      XXXXXX\\z_swmon
8      NT …
Run Code Online (Sandbox Code Playgroud)

sql sql-server sqlite r

5
推荐指数
1
解决办法
171
查看次数

架构和目录是什么意思?

来自 Silberschatz 等人的数据库系统概念:

\n
\n

4.5.7 模式、目录和环境

\n

与早期的 \xef\xac\x81le 系统一样,早期的数据库系统也为所有关​​系提供一个名称空间。用户必须协调以确保他们不会尝试对不同的关系使用相同的名称。现代数据库系统为命名关系提供了三级层次结构。层次结构的顶层由目录组成,每个目录都可以包含架构。SQL 对象(例如关系和视图)包含\n在架构内。(某些数据库实现使用术语\n \xe2\x80\x9cdatabase"代替术语目录。)

\n

为了对数据库执行任何操作,用户(或程序)\n必须\xef\xac\x81首先连接到数据库。用户必须提供用户名\n并且通常还需要提供密码以验证用户的身份。每个用户都有一个默认的目录架构,并且该组合对于该用户来说是唯一的。当用户连接到数据库系统时,将为该连接设置默认\n目录和架构;这对应于当用户登录操作系统时\n当前目录被设置为用户\xe2\x80\x99 的主目录。

\n

为了唯一地标识关系,可以使用由三部分组成的名称,例如\ncatalog5.univ schema.course 我们可以省略\n目录组件,在这种情况下,名称的目录部分被视为\n默认目录用于连接。因此,如果catalog5是默认目录,我们可以使用univ schema.course来唯一地标识相同的关系。

\n
\n
    \n
  1. 关系有一个模式,它是关系的所有\n属性的集合。上面引用中的“模式”似乎对应于多个关系。上面引用中的“模式”是否与关系的模式相同?
  2. \n
  3. 目录和数据库之间有什么关系?目录和数据库之间的关系是一对一的吗?
  4. \n
  5. mysql、postgresql 或\nSQL Server 中的目录和架构是什么样的?
  6. \n
\n

谢谢。

\n

database

1
推荐指数
1
解决办法
3164
查看次数

如何访问 R 中的嵌套 SQL 表?

从 R Studio 的ODBC 数据库文档中,我可以看到一个如何将 SQL 表读入 R 数据框架的简单示例:

data <- dbReadTable(con, "flights")
Run Code Online (Sandbox Code Playgroud)

BGBUref让我粘贴我正在尝试读取 R 数据框的表格图形(?)。这是来自我在 R studio 中的连接窗格。

嵌套表

如果我使用与上面相同的语法,con我的输出在哪里dbConnect(...) ,我得到以下内容:

df <- dbReadTable(con, "BGBURef")
#> Error: <SQL> 'SELECT * FROM "BGBURef"' nanodbc/nanodbc.cpp:1587: 42S02: 
#> [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Invalid object name
#> 'BGBURef'.
Run Code Online (Sandbox Code Playgroud)

我对“表”的理解是否不正确?或者我是否需要执行类似的操作才能访问嵌套BGBUref表:

df <- dbReadTable(con, "QnRStore\dbo\BGBURef")
#> Error: '\d' is an unrecognized escape in character string starting ""QnRStore\d"
Run Code Online (Sandbox Code Playgroud)

如果我单击小电子表格图标,数据BGBUref框将出现在 R Studio 中。就我而言,我只是不知道如何将其放入定义的数据框中df


这是我运行这些命令时的输出: …

sql-server odbc r r-dbi dbplyr

1
推荐指数
1
解决办法
1677
查看次数

如何在 postgresql 中显示目录和模式?

来自/sf/answers/1256071841/

在 Postgres 和 SQL 标准中,我们都有这样的包含层次结构:

  • 一台计算机可能有一个或多个集群。
  • 数据库服务器是一个集群
  • 一个集群有[目录][8]。(目录 = 数据库)
  • 目录有[schemas][9]。(Schema = [namespace][10] of tables,和安全边界)
  • 模式有 [][11]。
  • 表有 [][12]。
  • 行有,由[][13]定义。

在 postgresql 中,我有一个名为的数据库students,下面有一个名为的表student

postgres=# \c students
You are now connected to database "students" as user "postgres".
students=# \dt;
 public | student | table | postgres
Run Code Online (Sandbox Code Playgroud)

我想知道数据库students是否也是目录?

students和之间的模式在哪里student

一般来说,我如何列出

  • 所有目录和
  • 目录下的所有模式,以及
  • 架构下的所有表?

我怎样才能显示

  • 当前目录,以及
  • 当前模式?

谢谢。

postgresql

0
推荐指数
1
解决办法
7945
查看次数