使用测试数据填充表,同时保持关系完整性

时间:2010-12-21 21:36:53

标签: mysql database testing rdbms test-data

我有一个带有InnoDB表的MySQL数据库,其中很多都有外键。

我打算编写一个脚本来填充带有测试数据(10-20k行或更多行)的表格,但我想我应该问一下是否已经存在可以根据字段类型生成测试数据的内容但是确保关系完整性同时发生?

我已经看过并已经在generatedata.com上下载了脚本,但据我所知,它很聪明,但它不会读取数据库中的表并根据它找到的内容生成数据 - 你必须这样做全部手动。

3 个答案:

答案 0 :(得分:1)

这个很简单:

call procedurename('DATABASE','TABLE',1000,''); 

将填充1000个随机行,并根据您的需要填充记录。

答案 1 :(得分:0)

编辑:正如Mark Byers所指出的,Red-Gate工具只是SQL Server。

Red-Gate的SQL Data Generator具有“用于在多个表格中生成一致数据的外键支持”,但它并不便宜。

Datanamic的产品名为DB Data Generator

我没有使用这两种产品,但我使用过两家公司的其他工具,发现它们非常好。

答案 2 :(得分:-1)

我使用单独的连接脚本。这样,我就可以创建一个测试数据库(真实数据库的副本)。我在那里添加我的测试数据。

然后在连接脚本中选择测试数据库的一行,当我准备好时,将一行更改回实时数据库。

非常适合玩,设计,测试等。

以下是一个例子:

filename:includes / connection.php

<?php

    $DB_USER='username';          
    $DB_PASS='password';             
    $DB_HOST='localhost';                   
    $DB_NAME='dbname'; 

?>

要查看测试数据库,我将最后一行更改为:

 $DB_NAME='testdbname';

然后,我在每个PHP脚本中包含此连接文件。

希望这有帮助。