我有一个大型SQL数据库,需要在其中验证表和列的结构(而不是数据本身)。因此,我需要生成所有表的列表,然后为每个表,其所有列,然后为每个列,其数据类型,长度/精度,序数位置以及它是否是该表的主键的一部分而生成。
我可以通过以下查询获得大部分所需信息:
SELECT TABLE_NAME, ORDINAL_POSITION, COLUMN_NAME, DATA_TYPE, CHARACTER_MAXIMUM_LENGTH, NUMERIC_PRECISION, NUMERIC_SCALE
FROM INFORMATION_SCHEMA.COLUMNS
但是,我不确定如何检查列是否是主键的一部分。另外,对于那些PK由不止一列组成的表,我想知道键中每一列的顺序位置。到目前为止,我发现的信息与设置密钥有关,而不是与读取密钥有关。
我对在SQL Server和Oracle中都这样做很感兴趣。
在SQL Server中,您可以执行
SELECT K.TABLE_CATALOG,
K.TABLE_NAME,
K.COLUMN_NAME,
K.ORDINAL_POSITION
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE K
INNER JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS TC
ON K.TABLE_CATALOG = TC.TABLE_CATALOG
AND K.TABLE_SCHEMA = TC.TABLE_SCHEMA
AND K.CONSTRAINT_NAME = TC.CONSTRAINT_NAME
WHERE TC.CONSTRAINT_TYPE = 'PRIMARY KEY'
或者
SELECT Object_name(C.OBJECT_ID) TABLE_NAME,
C.NAME,
IC.INDEX_COLUMN_ID
FROM SYS.KEY_CONSTRAINTS K
INNER JOIN SYS.INDEX_COLUMNS IC
ON K.PARENT_OBJECT_ID = IC.OBJECT_ID
AND K.UNIQUE_INDEX_ID = IC.INDEX_ID
INNER JOIN SYS.COLUMNS C
ON IC.OBJECT_ID = C.OBJECT_ID
AND IC.COLUMN_ID = C.COLUMN_ID
WHERE K.TYPE = 'PK'
在ORACLE中
SELECT K.OWNER,
K.TABLE_NAME,
K.INDEX_NAME,
C.COLUMN_NAME,
C.COLUMN_POSITION
FROM ALL_CONSTRAINTS K
INNER JOIN ALL_IND_COLUMNS C
ON K.OWNER = C.INDEX_OWNER
AND K.TABLE_NAME = C.TABLE_NAME
AND K.INDEX_NAME = C.INDEX_NAME
WHERE K.CONSTRAINT_TYPE = 'P'
我是《颤栗》和《火种》的新手。 我有一个名为“菜肴”的集合,其中我有许多文档(例如名称、描述等),我还有一个名为成分的子集合,其中我有作为文档的id、名称和数量。 我要做的是取回所有含有配料的菜肴。 我有一个模型 IngredientModel模型 DishHelper 餐具供应商 主要我写了 和在家中(在构建方法中) 但是如果我尝试打印<code>打印(dishProvider.disks)我获
问题内容: 我的程序针对Android 1.5。我想检索有关设备本身的系统信息。通过搜索API,我发现很少有有用的类。到目前为止,我发现最好的是该类和一些系统属性。 我希望能够获得如下信息:设备上的内存总量,可用内存量(我不知道该类是否是主动给我的,因为它专门指的是JVM可用的内存)。有关处理器的信息。 这些信息是否可用?如果可以,我在哪里可以找到它? 问题答案: “内存总量”是毫无意义的(例如,
问题内容: 我在SQL Server中有六个视图需要在Teradata中复制,但是我找不到与SQL元数据表等效的TD。我想复制以下功能(我认为这是不言而喻的): 我也想知道在线上是否有可用的Teradata参考;我碰到的一切似乎都是广告,而不是实用的信息。 问题答案: 所有Teradata系统表都存储在DBC模式下。 对于列,它是dbc.columns 对于视图,它是dbc.tables,在名为t
我试图在一个旧的海军网页上抓取产品的URL。然而,它只是给出了产品列表的一部分,而不是全部(例如,当超过8个URL时,只给出8个URL)。我希望有人能帮我找出问题所在。
问题内容: 节点和角度。我有一个MEAN堆栈身份验证应用程序,在其中按如下所述在成功登录时设置JWT令牌,并将其存储在控制器的会话中。通过服务拦截器将JWT令牌分配给config.headers: authservice.js Interceptor(省略了requestError,response和responseError): 现在我想从令牌中获取登录的用户详细信息,我该怎么做?我尝试如下,但
节点和角度。我有一个平均堆栈身份验证应用程序,其中我在成功登录时设置JWT令牌,如下所示,并将其存储在控制器中的会话中。将JWT令牌分配给config。通过服务拦截器的标头: authservice.js拦截器(省略了请求错误、响应和响应错误): 现在我想从令牌中获取登录用户的详细信息,我该怎么做?我尝试了如下,但没有成功。当我记录来自用户的错误时。js文件它说“ReferenceError:未定