mysql有幾個內部表,存放schema,表名,主鍵,索引,列名等資訊。
此次做數倉遷移,為了配置datax通用指令碼,用到這些,順手整理一下:
select t.table_schema,t.table_name,concat('vnm_db01_',t.table_name) targettable,k.column_name,group_concat(c.column_name) as col
from information_schema.tables t
join information_schema.columns c
on c.table_schema=t.table_schema and c.table_name=t.table_name
left join (select table_schema,table_name,column_name from information_schema.key_column_usage where constraint_name='primary') k
on c.table_schema=k.table_schema and c.table_name=k.table_name
where t.table_schema='metis_prod'
and t.table_name in ('account_acl','account_item')
group by c.table_name
order by c.table_name
;
解釋:查詢schema,表名,拼接目標表名,主鍵,欄位名(已列轉行)
information_schema.tables:存放表名的
information_schema.columns:存放表字段的
information_schema.key_column_usage:存放表主鍵、索引之類的
oracle獲取表的列名,主鍵
select from user tab columns where table name 表名 字母大寫 查詢某個表中的欄位名稱 型別 精度 長度 是否為空 select column name,data type,data precision,data scale,nullable from u...
MySQL修改表的列名
修改表 1.修改之新增列 給stu表新增classname列 alter table stu add classname varchar 100 2.修改du之修zhi改列型別 修改stu表的daogender列型別為char 2 alter table stu modify gender char...
SQL搜尋某個表的主鍵所在的列名
日常工作記錄,北京 建設公司在實際專案中遇到並覺得的例項 在sql server中使用sql語句搜尋某個表的主鍵所在的列名,語法如下 select syscolumns.name from syscolumns,sysobjects,sysindexes,sysindexkeys where sys...