mysql - 关于数据库中系统metadata方法的问题
问题描述
使用metadata方法,如INFORMATION_SCHEMA.COLUMNS, INFORMATION_SCHEMA.TABLE这种,初学metadata方法,这里不太理解, 并且对于mysql不能用with方法不知道怎么解决,如何用一个语句选出的结果在另一个语句中进行from操作?临时表如何搭建?
CUSTOMER(cid,cname,ccity,cstate,cphone)RESTAURANT(rid,rname,rcity,rstate)MENUITEM(rid,itemname,price)ORDER(oid,cid,rid,ordertime,deliverytime,totalprice,deliveryfee)ORDERDETAIL(oid,rid,itemname,quantity)列出拥有最多attributes的table列出attribute类型为int的attribute名及其table名列出拥有相同attribute和相同数据类型的两个表
问题解答
回答1:mysql不支持with,临时表语法可以百度,”用一个语句选出的结果在另一个语句中进行from操作“你是说insert into select么 oracle也有的嘛 临时数据可以直接用insert into tbl select * from dual插入临时表 方法笨了点还是可以实现的“列出拥有最多attributes的table”和“列出attribute类型为int的attribute名及其table名”在INFORMATION_SCHEMA.COLUMNS中有table_schema,table_name,column_name,data_type,你按需要取值就可以了最后一个问题可以稍微处理一下数据筛选,比如select group_concat(table_name) from (select table_name,group_concat(table_columns) table_atrs from (select table_name,concat(column_name,data_type,ifnull(CHARACTER_MAXIMUM_LENGTH,’’)) table_columns from INFORMATION_SCHEMA.COLUMNS order by table_name,column_name) tbl group by table_name ) aaa group by table_atrs having count(1)>1;整理了一下,这个sql可以找出你要的结果,相同结构的表名以逗号连接展示出来(不包括索引结构)
相关文章:
1. java - mybatis怎么实现在数据库中有就修改,没有就添加2. MYSQL新建用户设置可以远程访问的问题3. $fields = $values = [];这条代码一直定义不了,一直报错,老师的源码也是被报错的,执行不了,请问该怎么解决这个问题4. python - 求一个在def中可以实现调用本def满足特定条件continue效果的方法(标题说不太清楚,请见题内描述)5. angular.js - angularjs的自定义过滤器如何给文字加颜色?6. javascript - 用表单提交两个时间段请求后台返回对应数据时出现的一些问题!7. node.js - nodejs和前端JavaScript 字符串处理结果不一样是什么原因?8. mysql - 我的myeclipse一直连显示数据库连接失败,不知道为什么9. mysql - SQL操作时间的函数?10. mysql 为何insert的时候会有lock wait timeout 异常
![$fields = $values = [];这条代码一直定义不了,一直报错,老师的源码也是被报错的,执行不了,请问该怎么解决这个问题](http://www.haobala.com/attached/image/news/202205/093622cb60.png)