如果是这样,我这边提供个方法:命令如下
mysql -u root -paidengshan --database information_schema --execute=" select concat('create table tbl_second',substring(table_name,10),' as select * from ',table_name,'') from tables where table_name like 'tbl_first%' and table_schema ='A库的名字' " >d:\tt.txt
其中 数据库密码要改一下,table_schema改成A库的名字,如果执行正确的话,会在 d下生成一个tt.txt文件,内容就是生成的create table as select *。。的语句,不要复制第一行,下面几行都复制了,然后黏贴到mysql里面执行就可以了
目前数据库中大约有 100 张表,1) 其中一张是用来保存产品类型的 table1 。例如ID | typeint | varchar(500)2) 每个类型的产品会有不同的相关信息,table3 这些信息对应了其余的多张表,但是每个表的结构相似,最多4 个字段,例如ID | data1 | data2 | table2_FK3) 另外一张表是用来保存所有类型的具体产品的名字的, table2ID | name | table1_FKint | varchar(500) |引用这应该把table2 table3 这种表合并为一张表就这么用两张表差不多吧,保存产品类型的 table1 1对多个产品ID data1 data2 data3 data4 type table1_FKdata1,data2 属于一张表data3,data4 属于一张表显然这样做效果不是很理想啊,因为表很多,这样定义的话在新表中大概就会有很多字段啊引用这个问题一定会存在的,如果你要减少表的数量,一定不可避免地要多出一些冗余字段,没有哪个系统的数据库表设计得有很完美的,有些东西没法都是最好的,比如,你要查询的性能,就得减少表的联查询,要减少表自然就要看需求满足再合并一些表,自然就有了冗余字段,只是想办法找到一个性能和冗余字段的平衡点,也就是最佳结合,这是要不断去试的欢迎分享,转载请注明来源:内存溢出
评论列表(0条)