oracle查询表时一般都会用前缀.表名,这个前缀表示啥

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle查询表时一般都会用前缀.表名,这个前缀表示啥相关的知识,希望对你有一定的参考价值。

oracle查询表时一般都会用前缀.表名,这个前缀表示什么?
是tablespace?
用户名?

请指导

前缀指数据库中使用的用户名
如:select * from abc.tablename@def
abc是schema,oracle中的模块,通常是指数据库的用户,def是oracle中的dblink,创建dblink用于配置数据库连接的别名,sql的意思是在查询def库中abc用户下的表
参考技术A 前缀一般指用户名。

按理说完整的表名写法是 用户名.表名 如果查询当前用户下表,用户名 可省略,查询其他用户下的表 要用完整写法.
不同用户间表访问 也涉及到权限,如果A用户访问B用户的C表,则要将C表的SELECT权限授予A用户.
参考技术B 前缀oracle叫schema
有可能是用户,也有可能是表空间
参考技术C 准确的说法叫做 ——方案.表名,创建用户的时候自动创建出这个用户的方案。你可以百度一下oracle的方案的概念

python 批量删除mysql前缀相同的表

1,一般游戏log数据库会存储大量的玩家行为日志,一种行为一张表,每天生成一张新表,一天会有30+张不同行为的表,通常会保留玩家日志1年左右,对于超过1年的日志需要删除

2,log数据库一年会保存1W多张表格,用python写个工具,来高效批量的删除表格

 

解决思路:

1,分析表名,找出相同的规律,本人维护的游戏log库表名后缀通常是以 年+月+日生成的,有了这个规律就好办了

2,用一条sql语法生成出drop table 表名

#下面这条语法是模糊匹配找出2016年的所有表,然后生成‘drop table ‘, table_name, ‘;‘删除语法

select CONCAT( ‘drop table ‘, table_name, ‘;‘ ) FROM information_schema.tables Where table_name LIKE ‘%_16%‘;

执行结果如下:

drop table LogAccLogout_160401;
drop table LogAccLogout_160402;
drop table LogAccLogout_160403;

drop table OpTradeInfo_160421;

drop table OpTradeInfo_160422;
drop table OpTradeInfo_160423;
drop table OpTradeInfo_160424;

 

3,先把执行的结果保存在文件中,用来给python脚本读取用的

4,python循环逐行读取刚刚保存的文件,然后mysql模块登陆mysql服务器

用模块是MySQLdb,安装方法:yum -y install MySQL-python*

 

代码如下:

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import MySQLdb

db = MySQLdb.connect("192.168.135.156","mysql_user","mysql_password","game_log" )

cursor = db.cursor() #获得mysql游标

open_file = open(jieguo_result_201_17.txt,r) #先打开已保存的文件

for line in open_file.readlines():  #for循环逐行读取每条
    try:
        print line,
        cursor.execute(line) #执行sql删除语法
        db.commit()    #提交请求
    except Exception as e:
        print e
        if e:      #遇到错误直接跳过,继续执行后面的删除语法
            continue

db.close()
open_file.close()

 





以上是关于oracle查询表时一般都会用前缀.表名,这个前缀表示啥的主要内容,如果未能解决你的问题,请参考以下文章

表的 ORM 和前缀

如何最好地修改带有表前缀的 sql 查询

从给定数据库中选择所有表时,如何将 [dbo] 前缀附加到表名?

test

创建实体时的表名(包含/正则表达式) - 实体框架 - 表前缀

python 批量删除mysql前缀相同的表