当前位置:  开发笔记 > 编程语言 > 正文

SQL服务器的数据生成器?

如何解决《SQL服务器的数据生成器?》经验,为你挑选了4个好方法。

我想收到有关SQL服务器可用的数据生成器的建议.如果发布回复,请提供您认为重要的任何功能.

我从未使用过这样的应用程序,所以我希望接受有关该主题的教育.谢谢.

(我的目标是在每个表中填充10,000多条记录的数据库,以测试应用程序.)



1> Galwegian..:

我过去使用过数据生成器.可能值得一看.

第三方编辑

如果您没有注册,则只能生成100行.您可以在下面找到今天界面的样子(2016年10月)

数据生成器的示例


很棒的答案.谢谢 :)

2> Pascal Parad..:

这里有类似的问题:在数据库中创建测试数据

Red Gate SQL数据生成器在该域中表现出色.您可以自定义数据库的每个字段,并使用带种子的随机数据.甚至使用Regex表达式创建特定模式.



3> Goran..:

我已经推出了自己的数据生成器,可以生成符合正则表达式的随机数据.它变成了一个学习项目(正在开发中),可以在github上找到.



4> S.Lott..:

为了生成样本数据,我使用简单的Python应用程序.

注意事项:

    易于修改和配置.

    一组可重复的数据,可用于性能测试并获得一致的结果.

    遵循所有数据库参照完整性规则和约束.

    现实数据.

前两个表示您要生成将加载数据的脚本文件.第三是更难.有一些方法可以发现数据库元数据和约束.一起看3和4,你不需要简单的逆向工程 - 你想要一些你可以控制的东西来产生真实的价值.

通常,您希望构建自己的实体模型,以便确保范围和关键关系正确.

你可以这三种方式做到这一点.

    生成可以手动加载的CSV数据文件.很好的可重复测试数据.

    生成可以运行的SQL脚本.不错的可重复数据.

    使用ODBC连接直接将数据生成到数据库中.我实际上并不喜欢这个,但你可能会这样.

这是一个精简的单表版本的数据生成器,用于写入CSV文件.

import csv
import random

class SomeEntity( list ):
    titles = ( 'attr1', 'attr2' ) # ... for all columns
    def __init__( self ):
        self.append( random.randrange( 1, 10 ) )
        self.append( random.randrange( 100, 1000 ) )
        # ... for all columns

myData = [ SomeEntity() for i in range(10000) ]
aFile= open( 'tmp.csv', 'wb' )
dest= csv.writer( aFile )
dest.writerow( SomeEntity.titles )   
dest.writerows( myData )
aFile.close()

对于多个实体,您必须计算基数.您想要从其他实体中随机选择,而不是生成随机密钥.因此,您可能让ChildEntity从ParentEntity中选择一个随机元素,以确保FK-PK关系正确.

使用random.choice(someList)random.shuffle(someList)确保参照完整性.

推荐阅读
coco2冰冰
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有