Задавайте вопросы, мы ответим
Вы не зашли.
Всем привет! Возникла проблема с заполнением таблицы числами к примеру 1,2,3,4,5
вот что я пишу для этого в SQLyog
USE evgen24;
DROP TABLE map;
CREATE TABLE `map`(
`id` INT(10) NOT NULL AUTO_INCREMENT,
`x` INT(5) NOT NULL,
`y` INT(5) NOT NULL,
`status` INT(3) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MYISAM DEFAULT CHARSET=utf8;
DECLARE i INT DEFAULT 0;
WHILE i < 400 DO
INSERT INTO map (X,
Y,
STATUS)
VALUES('1','1', FLOOR((RAND() * 5)));
SET i = i + 1;
END WHILE
мне отвечает, что так переменные не объявляются. Что делать?
Неактивен
DECLARE можно использовать только внутри хранимых процедур
Неактивен
а как мне написать? подскажите пожалуйста
Неактивен
Неактивен
понял спасибо, а как в SQLyog включить этот инструмент для создания хранимых процедур, все меню просмотрел ничего похожего не нашел
Неактивен
Я не знаю ничего про SQLyog, но говорят, что в нем можно работать как в консоли MySQL ( http://www.webyog.com/faq/28_48_en.html ). Это значит, что сначала нужно переопределить терминатор строки, чтобы точку с запятой можно было использовать внутри процедуры. В консольном клиенте это работает так:
Неактивен
вот с этим стало все понятно, спасибо огромное. Но всеже процедура не хочет выполняться даже 1 раз, ссылаясь на thread stack overrun, Типа что ей нехватило 128 000 байт и чтоб я use mysqld -O thread stack=# Это как понимать?
Неактивен
Это похоже на багу/нежелательное поведение сервера. Найдите файл my.cnf (или my.ini в windows) и в раздел [mysqld] добавьте строчку
thread_stack=512k
После этого перезапустите сервис mysql.
Неактивен
урааа... заработало. Спасибо огромное
Неактивен