一般的情况下,表的主键是必要的,没有主键的表可以说是不符合设计规范的。
SELECT table_name FROM User_tables tWHERE NOT EXISTS
(SELECT table_name FROM User_constraints c WHERE constraint_type = 'P' AND ttable_name=ctable_name)
其它相关数据字典解释
user_tables 表
user_tab_columns 表的列
user_constraints 约束
user_cons_columns约束与列的关系
user_indexes 索引
醒找一个表中的主键
哦,god save you, 业务生产库动错的很麻烦啊,你的库的日志模式是完整模式吗full,
以下转载:
DB2中可以使得数据库回复到指定的时间点,SQL Server数据库的Recovery Model为full 或者Bulk copy的时候,是可以从日志来恢复数据库的。实际上日志中记录的一条一条的transact sql语句,恢复数据库的时候会redo这些sql语句。
前提条件:myBBS是数据库test中的一个表,
数据库test的Recovery Model为Full,Auto Close,Auto Shrink两个选项未选中。
数据库test的data files和log files均为默认的自动增长状态。
A:2004/10/13,16:00进行数据库备份,backup database test to disk='d:\db\1600bak' with init
B:2004/10/14,13:00对数据库进行了update,delete等 *** 作;
C:2004/10/15,18:00使用delete mybbs where id>300时,语句误写成delete mybbs,因而删除了表mybbs中的所有数据。
现在在C点,C点对数据库进行了误 *** 作,我们希望数据库能够恢复到C之前的状态,比如恢复到10月15日17:59分的状态。
要恢复数据库B点,使用的是A点备分的数据库1600bak;而使用的日志备分是最新的备分1820logs;因而进行如下 *** 作:
--备分日志:
BACKUP LOG test TO DISK='d:\1820logs' WITH INIT
--恢复数据库1600bak,使用WITH NORECOVERY参数:
RESTORE DATABASE test from disk='d:\db\1640bak' WITH NORECOVERY
--使用日志恢复数据库到10月15日17:59分:
RESTORE LOG test
FROM disk='d:\1820logs' WITH RECOVERY,STOPAT='10/15/2004 17:59'
上面的三条Transact SQL语句的对应过程:
1恢复数据库到A点;
2执行A-B之间的log记录,把数据库恢复到B点
这样就恢复数据库到了指定的时间点。如果恢复不成功,可能的原因是:1未使用正确的备分数据库;2数据库选项选中了Auto Shrink
本文来自CSDN博客,转载请标明出处:
问题描述的不是很准确,查询主外键信息的话,可以查询dba_constraints视图。可以看到创建的主外键名称、类型、具体创建在哪张表、owner等信息。相对应的还有user_constraints。
以上就是关于Oracle中怎么知道表没有建立主键全部的内容,包括:Oracle中怎么知道表没有建立主键、你好,我想请教一下如何向Oracle数据库中插入数据后同时获取这条数据的主键、怎么查看oracle表那个是主键等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)