问题标签 [information-schema]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql - 如何使用 INFORMATION_SCHEMA 查找数据库中所有外键的主键
我想在一个表中找到所有外键,并为每个外键找到它指向的主键表和列。我需要使用 INFORMATION_SCHEMA 来执行此操作,因为我们希望将其用于所有数据库供应商(或至少所有正确实施 INFORMATION_SCHEMA 的供应商)。
我想出的最好的是:
这让我觉得过于复杂。有更好的选择吗?
谢谢 - 戴夫
mysql - 自动转储 information_schema
我正在寻找一种方法来备份 MySQL 上的所有数据库。我编写了一个运行 mysqldump 的批处理文件,它工作正常。不幸的是,我使用的是 MySQL 5.0,无法升级到包含 mysqldump 中的 information_schema 的较新版本。
谁能让我知道我应该如何转储这个数据库?在过去的 8 个小时里,我一直在尝试,但无法让它发挥作用!
希望有人可以提供帮助。
干杯
亚历克斯
tsql - 针对 INFORMATION_SCHEMA 的查询超时
我正在使用 SQL Server 2008 Management Studio 连接到 SQL Server 2000。
它工作得很好,又甜又快。但是这个:
超时停止。
超时的原因是什么?
PSselect count(*) from information_schema.tables
快速返回;数据库中有 334 个表。
php - 如何限制 SHOW TABLES 查询
我有以下查询:
它完全按照我想要的方式工作,尽管我需要对结果进行分页。我试过了:
我需要它来返回所有带有特定前缀的表,并按它们的注释对它们进行排序。我想通过 LIMIT 进行分页,每页有 6 个结果。
我显然做错了什么。如何实现?
编辑:我确实看过这个。它对我不起作用。
mysql - 在 MySQL 中获取当前正在执行的存储过程名称?
我需要一个我在 MySQL 中编写的存储过程的日志。我知道这在 MS SQL Server 中作为@@procid 可用。
MySQL中的等价物是什么?
我将使用时间戳、connection_id、database()。
如何获取我正在执行的 sp 的名称?那个叫我的sp呢?
谢谢,亚当
sql-server-2008 - 在所有数据库中搜索列名
我有这个查询可以找到与某个数据库的列名匹配的所有表和视图。我正在使用SQL SERVER 2008
我想扩展我的查询功能以搜索所有数据库,甚至查找具有我搜索的列名的存储过程。
java - 访问 H2 数据库模式
我目前使用jOOQ访问 java 中的嵌入式 H2 数据库以生成表类等。我目前可以执行查询,例如
在我的代码中,返回结果等。
但是我无法查询信息架构。我可以使用 H2 控制台正常访问它,并且为给定的 information_schema 表创建视图工作正常。我的问题是我应该如何访问 information_schema 例如执行查询,例如
从我的java代码中?我是否必须创建一个视图,是否可以通过 jooq-meta 或其他方式访问架构,或者我是否需要在 jooq-codegen 使用的属性文件中添加一些内容(information_schema 不是在生成的表类中创建的) ? 或者是其他东西?
编辑:这是我第一次尝试使用 jooq,并且来自 MySQL 背景。我有效地尝试实现的是能够运行一些单元测试以确保与数据库相关的代码正常工作。所以我想访问数据库的元数据(模式)并返回一些东西,而不必知道是否存在任何用户创建的表。
java - 查询适当的数据库模式
这是我之前关于在 java 中使用 jooq 与 H2 交互指定多个模式的问题的后续问题。
我的测试 H2 DB 目前有 2 个模式,PUBLIC 和 INFORMATION_SCHEMA。PUBLIC 被 H2 指定为默认模式。当运行一个应该从例如 INFORMATION_SCHEMA.TABLES 中提取信息的查询时,查询失败并出现“表未知”SQL 错误。我只能通过执行一个factory.use(INFORMATION_SCHEMA)
. 没有构建错误等,并且 Eclipse 可以正确地自动完成,例如 TABLES.TABLE_NAME。
如果我不这样做,即使我为模式创建了正确的工厂对象,jooq 似乎也不会预先添加适当的模式,例如
我阅读了有关映射的信息,但对于我将使用哪个模式作为输入/输出感到有点困惑。
mysql - mysql中limit的使用
第一个查询给出了很好的结果,但问题大约是第二个
当我给出限制 2,2。如何选择两行?这是 weied 行为查询
第二个查询或其总和错误有什么问题?有什么解决办法?
第二个查询的预期结果是带有值的单行2 and Amount
sql - PostgreSQL:如何区分存储过程和表值函数?
问题:
在 Microsoft SQL Server 中,有存储过程,也有表值函数。
不同之处在于,从存储过程中,我不能做进一步的选择,而从表值函数中,我可以。
例如
SELECT * FROM sp_whatever WHERE xxx
是非法的
,而
SELECT * FROM TVF_whatever WHERE xxx
完全合法
现在我的问题:
在 PostgreSQL 中,当我查看时information_schema.routines
,如何区分表值函数和过程?
有区别吗?
一般来说,我如何区分 PostgreSQL 中的函数和过程?
我的意思是理论上,在 SQL 服务器上,可以像这样区分它们:
表值函数:information_schema.data_type = 'table'
存储过程:information_schema.data_type IS NULL
函数:information_schema.data_type != 'table' AND information_schema.data_type IS NOT NULL
这是如何在 Postgres 中完成的?
理论上,存储过程的返回类型为 void,但由于存储过程也可以返回表,因此无法区分 tvf 和存储过程 - 假设存在差异。
所以我的问题也可以表述为:
在 PostGreSQL 中,如何创建表值函数,以及如何创建存储过程(每个示例 1 个)。
我对两者之间的返回类型的差异感兴趣(如果有的话)。