如何用1000行样本数据填充一个表?

smdncfj3  于 2021-06-18  发布在  Mysql
关注(0)|答案(3)|浏览(390)

对于下表:

CREATE TABLE Persons (
    ID int NOT NULL,
    ModifiedDate datetime,
    FirstName varchar(50),
    LastName varchar(50),
    EMail varchar(30),
    PhoneNumber varchar(15),
    PRIMARY KEY (ID)
);
yfjy0ee7

yfjy0ee71#

您可以编写如下查询:

INSERT INTO Persons(ModifiedDate, FirstName, LastName, EMail, PhoneNumber)
SELECT
    CURRENT_TIMESTAMP - INTERVAL FLOOR(RAND()* 31536000) SECOND, -- random datetime up to -1 year
    CHAR(FLOOR(RAND() * 26)+ ASCII('A')),  -- random character between A-Z
    CHAR(FLOOR(RAND() * 26)+ ASCII('A')),
    CHAR(FLOOR(RAND() * 26)+ ASCII('a')),  -- random character between a-z
    CHAR(FLOOR(RAND() * 10)+ ASCII('0'))   -- random character between 0-9
FROM any_table_with_1000_rows
LIMIT 1000

可以使用任何1000行的表。如果没有,您可以将一个有n行的表与其自身连接起来,得到n2行。

pieyvz9o

pieyvz9o2#

执行以下查询,它将插入1000个虚拟行

BEGIN
    DECLARE @RowCount int = 1000,
            @Index int = 1

    WHILE (@Index <= @RowCount)
    BEGIN
        INSERT INTO Persons (ID, ModifiedDate, FirstName, LastName, EMail, PhoneNumber)
                    VALUES (@Index, getdate(), 'FirstName' + CAST(@Index AS varchar(10)), 'LastName' + CAST(@Index AS varchar(10)), 'EMail' + CAST(@Index AS varchar(10)), CAST(@Index AS varchar(10)))
        SET @Index += 1
    END
END
agxfikkp

agxfikkp3#

一个简单的方法是使用https://www.mockaroo.com/ 它就是为此而设计的。创建所需的列并选择sql作为输出。它会让你成为一个好剧本。
您也可以创建一个excel电子表格来生成sql查询,但这有点费时

相关问题