标签: information-schema

Oracle:从systables/information_schema中查找索引创建日期?

使用Oracle,如何从systables/information_schema中找到索引名称和创建日期?

如何从systables/information_schema中复制创建索引的DDL,例如, create index indexname on tablename(column_name [, column_name....]) [local];

sql oracle metadata information-schema

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

postgresql:如何列出索引列?

有很多信息可以从information_schema和pg_catalog中检索到postgresql.我想检索有关由某个索引索引的列的信息,类似于我pragma index_info(<index_name>)在sqlite3中实现的.如何在不解析create index语句的情况下实现这一目标?

postgresql indexing information-schema

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

将列的值设置为其默认值

我现有的表很少,我必须在其中修改各种列以使其具有默认值。

如何将默认值应用于的旧记录NULL,以便旧记录与新记录保持一致

ALTER TABLE "mytable" ALTER COLUMN "my_column" SET DEFAULT NOW();
Run Code Online (Sandbox Code Playgroud)

修改表后看起来像这样...

    Table "public.mytable"
 Column      |            Type             |                        Modifiers
-------------+-----------------------------+-----------------------------------------------
 id          | integer                     | not null default nextval('mytable_id_seq'::regclass)
 ....

 my_column   | timestamp(0) with time zone | default now()

Indexes:
  "mytable_pkey" PRIMARY KEY, btree (id)
Run Code Online (Sandbox Code Playgroud)

是否有一种简单的方法可以使所有当前为空且具有默认值的列设置为默认值?

postgresql information-schema

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

如何使用括号和所有内容获取SQL Server列定义?

我需要一种智能方法,以一种可以在CREATE TABLE语句中使用的方式从INFORMATION_SCHEMA.COLUMNS中获取数据类型.问题是需要理解的"额外"字段,例如NUMERIC _PRECISION和NUMERIC _SCALE.

显然,我可以忽略INTEGER的列(精度为10,比例为0),但还有其他类型我会感兴趣,例如NUMERIC.因此,如果没有编写大量代码来解析表,那么有关如何从列定义中获取某种字段速记的任何想法?

我希望能得到类似的东西:int,datetime,money,numeric**(10,2)**

sql-server types information-schema

4
推荐指数
3
解决办法
9085
查看次数

在数据库中的未知表中查找特定列条目?

我知道这个主题(在数据库中查找未知表中的特定列?),我的问题非常相似.我需要的查询与此相似(我认为):

SELECT TABLE_NAME, COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_DEFAULT
FROM INFORMATION_SCHEMA.COLUMNS
WHERE column_name LIKE '%watcher%'
Run Code Online (Sandbox Code Playgroud)

但我需要的是一个查询,其中列名称未知,但我知道内容是什么,我想知道表/列的名称是什么.(我知道这听起来很奇怪: - /).我有可能吗?

sql sql-server information-schema sql-server-2008-r2

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

从 MySQL 中的信息模式获取索引方向

假设我创建了降序索引

CREATE INDEX `MyTable.MyIndex`
USING BTREE ON `MyTable` (`DateFrom` DESC, `DateTo` DESC);
Run Code Online (Sandbox Code Playgroud)

我想从 获取有关它的信息information_schema

根据文档 information_schema.statistics表完成这项工作。但是我找不到有关索引列顺序(即ASCDESC)的任何信息。

我怎样才能找到这些信息?

mysql indexing information-schema

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

MySQL - 查询平均行长度

我有一张名为兔子的桌子.我试图在我的表中找到平均行长度.我试过这个查询:

SELECT AVG_ROW_LENGTH(rabbits)
Run Code Online (Sandbox Code Playgroud)

但它不起作用.

mysql metadata row information-schema

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

如何在 MySQL 中查找生成的列定义

我已将虚拟生成的列添加到测试员工数据库中的工资表中,如下所示:

ALTER TABLE salaries
    ADD COLUMN salary_k int AS (salary / 1000);
Run Code Online (Sandbox Code Playgroud)

现在,当我查询INFORMATION_SCHEMA.COLUMNSEXTRA列时,该列按预期显示VIRTUAL GENERATED,但如何获取生成列的详细信息,即在本例中(salary / 1000)COLUMN_DEFAULT显示NULL.

SHOW CREATE TABLE salaries显示结果中的详细信息,但我希望结果作为较大查询的一部分INFORMATION_SCHEMA,因此这对我不起作用。

mysql innodb information-schema mariadb

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

为什么atttypmod与character_maximum_length不同?

我将一些information_schema查询转换为系统目录查询,并且字符最大长度得到了不同的结果。

SELECT column_name, 
    data_type , 
    character_maximum_length AS "maxlen"
FROM information_schema.columns 
WHERE table_name = 'x'
Run Code Online (Sandbox Code Playgroud)

返回我期望的结果,例如:

city    character varying   255
company character varying   1000
Run Code Online (Sandbox Code Playgroud)

等效目录查询

SELECT attname,
       atttypid::regtype  AS datatype,
       NULLIF(atttypmod, -1) AS maxlen
FROM   pg_attribute
WHERE  CAST(attrelid::regclass AS varchar) = 'x'
AND    attnum > 0
AND    NOT attisdropped
Run Code Online (Sandbox Code Playgroud)

似乎返回每个长度+ 4:

city    character varying   259
company character varying   1004
Run Code Online (Sandbox Code Playgroud)

为什么会有所不同?总是简单地从结果中减去4是否安全?

postgresql information-schema postgresql-9.4

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

信息模式中referential_constraints.unique_constraint_* 列的NULL 值

在 Postgres 10 中我声明了以下内容:

create table test_abc (
    pk integer not null,
    id integer not NULL,
    id2 integer not null,
    PRIMARY KEY (pk)
);
CREATE UNIQUE INDEX test_abc_ids ON test_abc(id,id2);
Run Code Online (Sandbox Code Playgroud)

然后是第二个表,其中 FK 引用第一个表:

create table test_def (
    id integer not null,
    abc_id integer,
    abc_id2 integer,
    PRIMARY KEY (id),
    FOREIGN KEY (abc_id,abc_id2) references test_abc(id,id2)
);
Run Code Online (Sandbox Code Playgroud)

现在考虑此查询的输出:

SELECT unique_constraint_catalog, unique_constraint_schema, unique_constraint_name
FROM   information_schema.referential_constraints r
WHERE  r.constraint_name = 'test_def_abc_id_fkey'
----------------------
NULL NULL NULL
Run Code Online (Sandbox Code Playgroud)

所有unique_constraint_*列都有空值。

Postgres 文档看来这些元列应该包含

包含外键约束引用的唯一或主键约束的 [object] 的名称(始终是当前数据库) …

sql postgresql foreign-keys information-schema database-metadata

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