Вторник, 26 Ноября 2024, 19:13

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Заполнение таблиц в MySQL
Evgen_24Дата: Суббота, 25 Августа 2012, 15:36 | Сообщение # 1
был не раз
Сейчас нет на сайте
Всем привет!
Столкнулся с такой проблемой: нужно заполнить таблицу произвольными значениями. И хочу заполнять ее из MySQL в SQLyog например.
Вот я пишу:

Code


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


в ответ мне пишет, что нельзя так переменные объявлять.

Вот как мне заполнить таблицу из скрипта sql?
KamskiiДата: Суббота, 25 Августа 2012, 17:21 | Сообщение # 2
Game ≠ Toy
Сейчас нет на сайте
Quote (Evgen_24)
в ответ мне пишет, что нельзя так переменные объявлять

Текст ошибки приведи, пожалуйста.
Evgen_24Дата: Суббота, 25 Августа 2012, 17:30 | Сообщение # 3
был не раз
Сейчас нет на сайте
Query : DECLARE i INT DEFAULT 0
Error code : 1064
You have an error in your SQL syntax; check the manual that corresponds to yuor MySQL server version for the right syntax to use near 'DECLARE i INT DEFAULT 0' at line 1
Ku-KluxДата: Воскресенье, 26 Августа 2012, 12:29 | Сообщение # 4
участник
Сейчас нет на сайте
в конце:
Code
END WHILE;

попробуй так (хотя возможно не поможет) или загрузи в базу файл с таблицей. возможно, версии не совместимы.


http://rus.1september.ru/urok <- уроки русского языка
-----
- Почему же наш скрипт ничего не выводит?
- Потому что вместо эхо мы написали инклуд!
- Исправим - с кем не бывает.
- Исправили, но все равно ничего не выводит - что за черт?

Оказывается мы запутались в четырех переменных, которые сами создали.
Evgen_24Дата: Воскресенье, 26 Августа 2012, 23:06 | Сообщение # 5
был не раз
Сейчас нет на сайте
Разобрался. Нужно было процедуру создать и делиметер вставить, и еще кеш добавить в mysql до 512кб

Code

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;

DROP PROCEDURE IF EXISTS X;
DELIMITER $$
CREATE PROCEDURE X()
BEGIN
   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;
END$$
DELIMITER;$$
CALL X();
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг