我有一个非常大的数据库,我想分成表格。我想这样做,当我运行一个独特的,它将为每个不同的名称制作一个表。表的名称将是其中一个字段中的数据。
EX:
A --------- Data 1
A --------- Data 2
B --------- Data 3
B --------- Data 4
将导致2个表,1个名为A,另一个名为B.然后整行数据将被复制到该字段中。
select distinct [name] from [maintable]
-make table for each name
-select [name] from [maintable]
-copy into table name
-drop row from [maintable]
任何帮助都会很棒!
答案 0 :(得分:1)
我会建议你不要这样做。
一种解决方案是创建索引,以便您可以快速访问数据。但是,如果你只有少数几个名字,这可能不是特别有效,因为索引值几乎可以选择所有记录。
另一种解决方案是称为分区。确切的机制因数据库而异,但基本思想是相同的。表格的不同部分(在您的情况下由name
定义)将存储在不同的地方。当查询仅查找特定名称的值时,只会读取该数据。
通常,使多个表具有完全相同的数据列是不好的设计。以下是一些原因:
虽然可能会有一些简化(考虑到安全性),但大多数数据库都有其他机制优于将数据拆分为单独的表。
答案 1 :(得分:0)
你想要的是
CREATE TABLE new_table
AS (SELECT .... //the data that you want in this table);