我有这个sql:
ALTER TABLE dbo.ChannelPlayerSkins
DROP CONSTRAINT FK_ChannelPlayerSkins_Channels
Run Code Online (Sandbox Code Playgroud)
但显然,在我们使用的其他一些数据库中,约束具有不同的名称.如何检查名称是否存在约束FK_ChannelPlayerSkins_Channels.
name和tbl_name之间有什么区别sqlite_master?
有关用户定义类型的信息存储在哪里?
是否有一些表包含有关用户定义的复合类型的字段,其名称等的信息?
是什么之间的区别ALL_TAB_COLUMNS,并ALL_TAB_COLS在甲骨文12C系统表?在我的数据库中,ALL_TAB_COLUMNS的行数比ALL_TAB_COLS略少.
我正在开发适用于 Oracle 的应用程序。对于某种逻辑,我需要从具有指定架构的给定 db 用户获取表列表。就我而言,我有一个用户已授予对给定架构的访问权限。因此,当我的代码使用给定的凭据创建连接并尝试从以下查询中获取表时,其返回表列表。
SELECT * FROM dba_objects where owner ='schema' and object_type = 'TABLE'
上面的查询正在使用具有授予所有权限的用户, 但是当我尝试使用有限的权限时,它抛出错误 msg。
ORA-00942: table or view does not exist
00942. 00000 - "table or view does not exist"
Run Code Online (Sandbox Code Playgroud)
对于我们的代码从中创建连接的次要用户已通过以下查询授予权限
create user johnsmith identified by Passw0rd;;
grant connect to johnsmith ;
grant select any table to johnsmith ;
grant UPDATE any table to johnsmith ;
grant DELETE any table to johnsmith ;
grant INSERT any table to johnsmith ;
Run Code Online (Sandbox Code Playgroud)
我应该授予用户访问以下系统表的权限...?
我在使用DB2时发现了一个奇怪的行为,SYSIBM.SYSCOLUMNS而且只出现在一个表中.
这是我的查询:
select distinct NAME, COLTYPE, LENGTH, SCALE, REMARKS from SYSIBM.SYSCOLUMNS where TBNAME='Table1';
Run Code Online (Sandbox Code Playgroud)
通常结果显示每个表一次.
|===================================|
| NAME |COLTYPE|LENGTH|SCALE|REMARKS|
|col1 | ..... |......|.....|.......|
|col2 | ..... |......|.....|.......|
|col3 | ..... |......|.....|.......|
|===================================|
Run Code Online (Sandbox Code Playgroud)
但是,如果我使用一个特定的表,让我们调用它Table2,每列显示两次:
|===================================|
| NAME |COLTYPE|LENGTH|SCALE|REMARKS|
|col1 | ..... |......|.....|.......|
|col1 | ..... |......|.....|.......|
|col2 | ..... |......|.....|.......|
|col2 | ..... |......|.....|.......|
|col3 | ..... |......|.....|.......|
|col3 | ..... |......|.....|.......|
|===================================|
Run Code Online (Sandbox Code Playgroud)
但是只有我REMARKS在select语句中包含它.如果我REMARKS从我的选择中删除,一切都按预期工作.
这个问题可能是什么原因?我的查询有问题吗?