SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 08.06.2020 17:36:18

Катерина94
Участник
Зарегистрирован: 08.06.2020
Сообщений: 5

Заполнение данных в таблице в хранимой процедуре MySQL

Добрый день! Помогите, пожалуйста. Есть созданная пустая таблица и есть хранимая процедура. По заданию нужно использовать RAND, а тип данных в price INT или DECIMAL ( что с RAND дает просто 0). Нужно, чтобы даты присваивались разные, а category_id от 1 до 100 присваивалась случайным образом. Как это сделать? Не могу справиться с этими последними тремя столбцами- price,category_id и last_delivery.

CREATE TABLE products
(
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(255) NOT NULL,
    price INT NOT NULL,
        category_id INT NOT NULL,
    FOREIGN KEY (category_id) REFERENCES categories(id),
    last_delivery DATE
);

DELIMITER $$
CREATE PROCEDURE add_products()
BEGIN
DECLARE i INT DEFAULT 1;
WHILE i <= 5000 DO
INSERT INTO products (name, price, category_id, last_delivery)
VALUES (CONCAT('product',i), ????????);
SET i = i + 1;
END WHILE;
END $$

Отредактированно Катерина94 (08.06.2020 23:16:46)

Неактивен

 

#2 08.06.2020 21:36:54

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5827

Re: Заполнение данных в таблице в хранимой процедуре MySQL

Катерина94 написал:

Нужно, чтобы даты присваивались разные,

например,
now() - interval i day

Катерина94 написал:

а category_id от 1 до 100 присваивалась случайным образом.

round(rand()*99)+1

Неактивен

 

#3 13.06.2020 01:19:05

Катерина94
Участник
Зарегистрирован: 08.06.2020
Сообщений: 5

Re: Заполнение данных в таблице в хранимой процедуре MySQL

vasya, спасибо большое!) Работает! Сама бы не справилась

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson