• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Generator dla MySQL

Mały hosting, OGROMNE możliwości
0 głosów
1,472 wizyt
pytanie zadane 19 stycznia 2016 w SQL, bazy danych przez M3How Nowicjusz (140 p.)

Mam problem z generatorem do bazy danych w MySQL (w środowisku EMS SQL Manager for MySQL 2007).

Moja tabela składa się z 3 pól: id_lecturer  int(autoinkrementowalne, klucz główny, nie null), name varchar (32), surname varchar (32).

Próbowałem wygenerować 1000 rekordów do tej tabeli w stylu:

imie1, nazwisko1

imie2, nazwisko2

...

imie1000, nazwisko1000

Problemem jest to, że wyskakuje mi błąd tego typu:

can't drop or alter procedure from another stored routine

Wydaje mi się, że gramatycznie powinno być w porządku ale mogę się mylić.... (kod jest w MySQL)

DROP PROCEDURE IF EXISTS dodaj_do_tabeli_lecturer;
DELIMITER ';;'
CREATE PROCEDURE dodaj_do_tabeli_lecturer ()
BEGIN

DECLARE licznik INT DEFAULT 1;

WHILE licznik <= 1000 do
    INSERT INTO lecturer (name, surname)
    VALUES("name" + LTRIM(STRING(licznik)),"surname" + LTRIM(STRING(licznik)));
    SET licznik = licznik + 1;
END WHILE
END;;
DELIMITER ';'

Próbowałem też skrócić tą procedurę ale błąd był podobny lub taki sam:

can't create procedure from within another stored routine

CREATE PROCEDURE dodaj_do_tabeli_lecturer ()
DELIMITER ';;'
BEGIN

DECLARE licznik INT DEFAULT 1; 

WHILE licznik <= 1000 do
    INSERT INTO lecturer (name, surname) 
    VALUES("name" + LTRIM(STRING(licznik)),"surname" + LTRIM(STRING(licznik))); 
    SET licznik = licznik + 1;
END WHILE
END;;
DELIMITER ';'

No i całkiem krótka wersja...

BEGIN
DECLARE licznik INT DEFAULT 1;

WHILE licznik <= 1000 do
    INSERT INTO lecturer (name, surname)
    VALUES("name" + LTRIM(STR(licznik)),"surname" + LTRIM(STR(licznik);
   set licznik = licznik + 1;
END WHILE
END;

Forumowicze proszę o pomoc. Mam niewiele czasu i dużo do zrobienia z resztą generatorów. Jeśli uda mi się znaleźć i naprawić błąd w tym to z pozostałymi nie powinno być problemu.

1 odpowiedź

0 głosów
odpowiedź 19 stycznia 2016 przez Michał Kopaczewski Użytkownik (870 p.)
http://stackoverflow.com/questions/19404387/1357-cant-drop-or-alter-a-procedure-from-within-another-stored-routine
oraz gdzieś ktoś napisał żeby uzywać apostrofu zamiast cudzysłowu do stringow
komentarz 19 stycznia 2016 przez M3How Nowicjusz (140 p.)
Próbowałem ale nie było różnicy. Dalej wyskakiwał mi ten błąd.
komentarz 20 stycznia 2016 przez Michał Kopaczewski Użytkownik (870 p.)
Aktualizuj kod w poście. Nikt nie wie co do tej pory zrobiłeś w celu rozwiązania problemu i nie ma punktu zaczepienia.

Podobne pytania

+1 głos
1 odpowiedź 860 wizyt
pytanie zadane 25 sierpnia 2017 w Nasze projekty przez Ehlert Ekspert (215,210 p.)
+3 głosów
4 odpowiedzi 1,323 wizyt
pytanie zadane 7 września 2024 w Nasze projekty przez su7890 Początkujący (450 p.)
0 głosów
1 odpowiedź 5,087 wizyt

93,718 zapytań

142,629 odpowiedzi

323,261 komentarzy

63,265 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...