Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[MySQL] Simpele variabele declaratie is fout?

Pagina: 1
Acties:

  • Boondock_Saint
  • Registratie: Januari 2001
  • Laatst online: 18-11-2023
Ik wil wat records toevoegen aan een tabel die lijken op records die al in die tabel zitten, maar met 1 veld verschillend.
Het leek mij ideaal om zoiets met een loop te doen, maar op de een of andere manier blijf ik maar dezelfde foutmelding krijgen.

Het gaat om deze statements:

SQL:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
BEGIN 
DECLARE iter INT DEFAULT 1;

WHILE iter < 85 DO
  INSERT INTO `product_new` 
    SELECT id, 'S' as size, name, price, image FROM `product_new` WHERE id=iter;
  INSERT INTO `product_new` 
    SELECT id, 'M' as size, name, price, image FROM `product_new` WHERE id=iter;
  INSERT INTO `product_new` 
    SELECT id, 'L' as size, name, price, image FROM `product_new` WHERE id=iter;
  INSERT INTO `product_new` 
    SELECT id, 'XL' as size, name, price, image FROM `product_new` WHERE id=iter;
  INSERT INTO `product_new` 
    SELECT id, 'XL' as size, name, price, image FROM `product_new` WHERE id=iter;
  INSERT INTO `product_new` 
    SELECT id, 'XXL' as size, name, price, image FROM `product_new` WHERE id=iter;
  SET iter = iter + 1;
END WHILE;
END


De foutmelding die ik krijg is deze:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DECLARE iter INT DEFAULT 1' at line 2
Maar ik snap niet wat daar fout aan is? Ik heb het letterlijk overgenomen van de mysql documentatie, eerst c/p, daarna getypt, want ik dacht misschien worden er nog rare karakters gepaste.
Ook google en het mysql forum boden geen uitkomst.

Het is mysql versie 5 en de database wordt gehost by Lycos (don't ask).

Blasphemy is a victimless crime


  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 28-02 22:17
size en name zijn (aan de highlighting te zien) reserved names, probeer die eens te backticken.

Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info


  • Boondock_Saint
  • Registratie: Januari 2001
  • Laatst online: 18-11-2023
Zowel backticks als het hernoemen van size en name naar modelsize en modelname heeft niet geholpen.

Ik weet dat mysql niet heel nauwkeurig is met het localiseren van fouten, maar dan zou de foutmelding wel daar in de buurt geweest zijn toch? :)

[ Voor 42% gewijzigd door Boondock_Saint op 07-11-2007 22:17 ]

Blasphemy is a victimless crime


  • djiwie
  • Registratie: Februari 2002
  • Laatst online: 26-11 15:25

djiwie

Wie?

Heeft het niet te maken met het feit dat DECLARE alleen in een stored procedure gebruikt mag worden?

  • Boondock_Saint
  • Registratie: Januari 2001
  • Laatst online: 18-11-2023
ja, daar zat ik ook al aan te denken, maar toen ik dat ging proberen lukte het ook niet helemaal.

Ik zal er vanavond nog eens naar kijken :)

Blasphemy is a victimless crime