在保持关系完整性的同时填充测试数据到表中。

8
我有一个MySQL数据库,其中包含InnoDB表,许多表都有外键。
我原本想编写一个脚本来填充表格与测试数据(10-20k行或更多),但我认为我应该问一下是否已经有类似的工具可以基于字段类型生成测试数据并同时确保关系完整性?
我见过并下载了generatedata.com上的脚本,但就我所看到的,它很聪明,但它不会读取您的数据库中的表,并根据找到的内容生成数据 - 您必须全部手动完成。
3个回答

1

这个非常简单:

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

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


它是否遵守外键? - bcmcfc
我尝试了一下,但是出现了错误1172(42000):结果包含多行。:/ - harveyslash

0

编辑:正如Mark Byers指出的那样,Red-Gate工具仅适用于SQL Server。

Red-Gate有他们的SQL Data Generator,它具有“外键支持以生成跨多个表的一致数据”,但不便宜。

有一个来自Datanamic的产品名为DB Data Generator

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


我以为 SQL 数据生成器只适用于 SQL Server。它能在 MySQL 上工作吗? - Mark Byers

-1

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

然后,在连接脚本中选择测试数据库只需要一行代码,当我准备好时,只需一行代码切换回实际数据库。

这对于玩耍、设计、测试等非常有用。

以下是一个示例:

文件名:includes/connection.php

<?php

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

?>

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

 $DB_NAME='testdbname';

然后,我会在每个PHP脚本中包含这个连接文件。
希望这有帮助。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接