MySQL没有孤立数据的双重数据库中的数据量

时间:2016-03-05 14:29:50

标签: python mysql database

出于测试目的,我想将数据库中的数据量加倍。

除了循环遍历表格模式之外,是否有更好的方法论方法:

select table_name from information_schema.tables where table_schema='<database_name>';

对于结果中的table_name:

explain <database_name>.<table_name>;

基于表

在python中创建对象

select * from <table_name>;

将数据存入我们创建的对象

将对象主键(GUID)更改为新的guid,如果该主键存在于其他对象中的任何其他位置,则将其更改为相同的guid

将新数据插入数据库。

预期结果: 这会使我在数据库中拥有的对象数量翻倍。

1 个答案:

答案 0 :(得分:1)

您不需要在Python中创建对象。您可以将表中的数据重新插入到自身中:

public partial class Form1 : Form
{
    GameEngine engine;

    public Form1()
    {
        InitializeComponent();
        engine = new GameEngine();
        engine.repaintRequired += engine_repaintRequired;
        engine.update();
    }

    private void engine_repaintRequired(object sender, EventArgs e)
    {
        repaint();
    }

    public void repaint()
    {
        Console.Write("repaint");
    }
}

class GameEngine
{
    public event EventHandler repaintRequired;

    public void update()
    {
        onRepaintRequired();
    }

    private void onRepaintRequired()
    {
        if (repaintRequired != null)
            repaintRequired(this, new EventArgs());
    }
}

这假设没有列是标识列(可能是一个错误的假设)。因此,您需要列出列:

insert into t
    select t.*
    from t;

不要包含标识列。让它获得默认值。如果未设置标识,则可能需要执行以下操作:

insert into t(col1, col2, . . .)
    select col1, col2, . . .
    from t;

对于UUID,您将使用函数生成新密钥。

但是,没有必要将数据移出数据库以进行此操作。