[英]How can I create a function in MySQL for add elements in a table?
我想在這樣的表中添加元素:
Codigo Name Lastname Date Sex Salary
1 name1 lastname1 random random random
2 name2 lastname2 random random random
3 name3 lastname3 random random random
4 name4 lastname4 random random random
日期是2000年至2015年之間的任意日期
性別是隨機布爾值1或0
薪水是500.00至5000.00之間的隨機浮動
那可能嗎? 我怎樣才能做到這一點? 我什至不知道該怎么做
CREATE OR REPLACE FUNCTION inserting(integer varying, character varying, character varying, date, boolean, float varying) RETURNS void
AS $$
begin
insert into trabajador(codigo, name, lastname, date, sex, salary) values ($1,$2,$3,$4,$5,$6);
end;
$$
LANGUAGE 'plpgsql';
使用rand()
生成一個介於0和1之間的浮點數。然后,類似這樣的事情將生成您的隨機數據:
insert into yourtable values
( 1,
'John',
'Doe',
DATE_ADD('2000-01-01', INTERVAL (RAND()*15*365) DAY),
FLOOR(RAND()*10) % 2,
500+ROUND(RAND() * 4500,2)
);
這應該是一個過程,而不是一個函數,因為它不會返回任何東西。 然后在過程中使用WHILE循環插入許多行。
創造許多
DELIMITER $$
CREATE PROCEDURE inserting(rowcount INT)
BEGIN
SET @i = 0;
SET @codigo = (SELECT MAX(codigo)+1 FROM trabajador);
WHILE @i < rowcount
DO
SET @name = CONCAT('name', @codigo);
SET @lastname = CONCAT('lastname', @codigo);
SET @date = DATE_ADD('2000-01-01', INTERVAL (RAND()*15*365) DAY);
SET @sex = FLOOR(RAND() * 2);
SET @salary = 500.0 + RAND() * 4500.0;
INSERT INTO trabajador (codigo, name, lastname, date, sex, salary)
VALUES (@codigo, @name, @lastname, @data, @sec, @salary);
SET @i = @i + 1;
SET @codigo = @codigo + 1;
END WHILE;
END;
$$
DELIMITER ;
要添加500行,請使用CALL inserting(500);
使用RAND()
函數
CREATE TABLE tbl(Codigo INT(6) NOT NULL AUTO_INCREMENT PRIMARY KEY
,Name VARCHAR(25) NOT NULL
,LastName VARCHAR(25) NOT NULL
,Date DATE NOT NULL
,Sex BOOLEAN NOT NULL
,Salary FLOAT NOT NULL
);
INSERT INTO tbl(Name, LastName, Date, Sex, Salary)
VALUES('name1',
'lastname1',
FROM_UNIXTIME(UNIX_TIMESTAMP('2000-01-01 00:00:00') + FLOOR(0 + (RAND() * 157680000))),
FLOOR(RAND() * 10) % 2,
FLOOR(RAND() * 5000) + 500);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.