标签: information-schema

选择MySQL中不包含某个列的表

我试图选择所有没有名为"unique"的列的表.我可以选择使用它的所有表:

SELECT DISTINCT TABLE_NAME 
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME = 'unique'
AND TABLE_SCHEMA ='database';
Run Code Online (Sandbox Code Playgroud)

是否有一种简单的方法来修改SELECT语句,以便列出所有没有该列的表?这看起来很简单,但我无法弄明白,也无法在论坛上找到答案.

谢谢

mysql sql select information-schema

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

仅显示MySQL中用户创建的表?

是否有一条SQL命令,通过该命令我只能显示用户创建的表,而不能显示MySQL数据库中默认存在的表?

mysql metadata information-schema

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

删除所有主键

这听起来像是一个疯狂的请求.我报告的数据库没有任何外键,每个主键都是identity_column.这使得使用诸如TOAD之类的工具变得困难,因为Intellisense通过读取PK和FK关系来工作.

任何人都有一个脚本从数据库中的每个表中删除主键,所以我可以用"正确的"PK替换它们并添加FK以协助报告?

要忘掉"不要做!!!"的意思 回复,让我明确表示我不会对我的生产数据库执行此操作,而是将其复制到另一台服务器上.

任何意见,将不胜感激.

-------编辑使用正确的信息更新.----------------

谢谢你们,但我意识到我犯了一个错误.几乎每个表都有一个具有身份属性的"identity_column".该身份是聚集索引.但是,它未被指定为主键.

首先,主键和聚簇索引之间有什么区别?

其次,如何编写所有聚簇索引的脚本?这会有用吗?

SELECT 
  'ALTER TABLE ' + OBJECT_NAME(OBJECT_ID) + ' DROP CONSTRAINT ' + name 
FROM sys.indexes WHERE type_desc = 'CLUSTERED'
Run Code Online (Sandbox Code Playgroud)

谢谢你的耐心

t-sql constraints sql-server-2000 information-schema

2
推荐指数
2
解决办法
8054
查看次数

如何在Postgresql中为select_schema.views授予select?

有没有办法在information_schema-objects上授予读访问权限,在本例中是views-table?

我想用非常有限的用户运行我的Web应用程序,但在某些地方他需要查询information_schema.views以进行调试.我想只允许拥有超级用户权限的用户这样做,或者还有其他方法吗?不喜欢以最大用户授权运行我的网络应用程序...

postgresql views information-schema grant

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

SQL检查表是否存在于C#中,如果不存在则创建

我想我几乎看到了与这个问题相关的每一页,最可能的答案是 检查SQL表是否存在 但是并不是真的理解它.这就是我得到的:

    private void select_btn_Click(object sender, EventArgs e)
    {
        string theDate = dateTimePicker1.Value.ToString("dd-MM-yyyy");
        SqlConnection SC = new SqlConnection("Data Source=ruudpc;Initial Catalog=leden;Integrated Security=True");
        SqlCommand DateCheck = new SqlCommand("SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = '" + theDate + "'");
    }
Run Code Online (Sandbox Code Playgroud)

现在我想要DateCheck.ExecuteScalar()的返回值; 这可以告诉我它是否存在,可能很简单.

编辑

无论是sql注入部分,对于某些人来说这个问题是有帮助的,通常不好的做法是动态创建表,我建议你重新考虑你的ERD.只是说.

c# sql sql-server sqlcommand information-schema

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

在SQL Server中查找包含两个特定列的表

我想在SQL Server中找到包含两个特定单独列的所有表.

第一列名称是"LIKE'%A%'"(意思是它包含子字符串"A"),第二列名称是"LIKE'%B%'"(意思是它包含子字符串"B").

我写了以下查询,我想检查它的正确性:

SELECT s.TABLE_NAME 
FROM (SELECT COLUMN_NAME, TABLE_NAME 
    FROM INFORMATION_SCHEMA.COLUMNS 
    WHERE COLUMN_NAME LIKE '%A%'
    UNION
    SELECT COLUMN_NAME, TABLE_NAME 
    FROM INFORMATION_SCHEMA.COLUMNS 
    WHERE COLUMN_NAME LIKE '%B%') s
WHERE EXISTS (SELECT COLUMN_NAME, s.TABLE_NAME 
              FROM INFORMATION_SCHEMA.COLUMNS
              WHERE COLUMN_NAME LIKE '%A%')
AND EXISTS (SELECT COLUMN_NAME, s.TABLE_NAME
            FROM INFORMATION_SCHEMA.COLUMNS
            WHERE COLUMN_NAME LIKE '%B%');  
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server information-schema database-metadata

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

在整个数据库中将空字符串 ('') 设置为 NULL

在我的数据库中有许多文本列,其中值是空字符串 ( '')。空字符串需要设置为NULL. 我不知道这个数据库中的确切模式、表和列,或者我想编写一个可以重用的通用解决方案。

我将如何编写查询/函数来查找所有模式中所有表中的所有文本列,并将所有带有空字符串 ( '') 的列更新为NULL

sql postgresql dynamic-sql information-schema plpgsql

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

如何在Postgres中使用只读用户访问information_schema外键约束?

介绍

我一直在开发一个向导,为没有任何编程/SQL 背景的用户创建复杂的数据库 Postgres 查询。由于存储在 information_schema 视图中的外键约束,用户可以选择任意数量的表,并且该工具将找到正确的联接设置(因此,用户不必添加ON table_a.field_1 = table_b.field_2)。

在开发过程中,我一直使用管理数据库用户,现在想将其更改为只读用户以使其更安全。但是,这个只读用户似乎无法访问外键约束。

现在的情况

当选择了多个表时,该工具会尝试获取各个表之间的连接,以便了解如何连接它们。在此过程中,将执行以下查询:

SELECT 
  tc.constraint_name, 
  tc.table_name, 
  kcu.column_name, 
  ccu.table_name AS foreign_table_name, 
  ccu.column_name AS foreign_column_name 
FROM information_schema.table_constraints AS tc 
JOIN information_schema.key_column_usage AS kcu 
  ON tc.constraint_name = kcu.constraint_name 
JOIN information_schema.constraint_column_usage AS ccu 
  ON ccu.constraint_name = tc.constraint_name 
WHERE constraint_type = 'FOREIGN KEY' 
  AND ccu.table_name = 'TableB' 
  AND tc.table_name IN ('TableA');
Run Code Online (Sandbox Code Playgroud)

WHERE(注意:使用最后一个子句IN是因为可以有多个可用基表。TableA 是基表,每个成功连接/联接的表将可用于其他联接,例如可以使用第三个表,AND ccu.table_name = 'TableC' AND tc.table_name IN ('TableA', 'TableB');依此类推。)

当使用 admin db 用户(具有最常见的权限,如 GRANT、SELECT、INSERT、UPDATE、DELETE、TRUNCATE...)执行查询时,结果如下所示:

constraint_name | …
Run Code Online (Sandbox Code Playgroud)

postgresql privileges information-schema

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

Redshift 列出所有架构名、表名和列名

我试图加入,information_schema.columns但发现无法做到,那pg_table_def就是等价的。

但它存在仅显示 中存在的模式的问题search_path,我怎样才能information_schema.columnspg_table_def

或者设置search_path到处搜索?

information-schema amazon-web-services amazon-redshift

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

PostgreSQL:用于获取表的所有外键引用的列表的 SQL 脚本

我有一个表,breeds其主键为breed_name,并且希望获取引用的所有表、列和约束的列表,breeds无论 中引用的列如何breeds。如果还有另一个表,cats并且该表具有如下约束:

CREATE TABLE cats 
(
    cat_name  text,
    cat_breed text,

    CONSTRAINT cat_breed_name 
        FOREIGN KEY (cat_breed) REFERENCES breeds(breed_name)
)
Run Code Online (Sandbox Code Playgroud)

我应该返回如下一行:

base_table     base_col    referencing_table   referencing_col  constraint_sql
breeds         breed_name  cats                cat_breed        CONSTRAINT cat_breed_name FOREIGN KEY (cat_breed) REFERENCES breeds(breed_name)
Run Code Online (Sandbox Code Playgroud)

还应该列出非主键引用,并且它应该处理复合键。

sql database postgresql foreign-keys information-schema

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