insert into ENUM type geeft error 1064 (42000):

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

NiVin

niVin

05/07/2008 19:00:00
Quote Anchor link
ik heb een tabel met twee kolommen(id en status). Status is een ENUM type met waardes ('readed' , 'notreaded'). standaard op notreaded.

SELECT * from bannersTEST;

+----+-----------+
| id | status |
+----+-----------+
| 1 | notreaded |
| 2 | notreaded |
| 3 | notreaded |
| 4 | notreaded |
| 5 | notreaded |
| 6 | notreaded |
| 7 | notreaded |
| 8 | notreaded |
| 9 | notreaded |
| 10 | notreaded |
| 11 | notreaded |
| 12 | notreaded |
| 13 | notreaded |
| 14 | notreaded |
| 15 | notreaded |
| 16 | notreaded |
| 17 | notreaded |
| 18 | notreaded |
| 19 | notreaded |
| 20 | notreaded |
+----+-----------+

met :
INSERT INTO bannersTEST (status) VALUES (1) where id = 1;

wil ik status van id 1 zetten naar readed.

Maar ik krijg de volgende error:

ERROR 1064 (42000): 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 'where
id = 1' at line 1

Iemand een idee waar dit aan ligt?

mvg Vincent
 
PHP hulp

PHP hulp

29/04/2024 09:49:24
 
- SanThe -

- SanThe -

05/07/2008 19:14:00
Quote Anchor link
INSERT INTO bannersTEST (status) VALUES (1) where id = 1;

Status op 1 ?? Je bedoelt één van deze twee: 'readed' of 'notreaded'
 
NiVin

niVin

05/07/2008 19:17:00
Quote Anchor link
Ja dat klopt. Maar via index waardes kan je toch ook werken?
 
- SanThe -

- SanThe -

05/07/2008 19:26:00
Quote Anchor link
Dat zou ik niet weten. Lees de handleiding eens door.
 
NiVin

niVin

05/07/2008 19:35:00
Quote Anchor link
oke....maar als ik t met readed doe krijg ik dezelfe error..
 
Jan Koehoorn

Jan Koehoorn

05/07/2008 19:36:00
Quote Anchor link
Had je er enkele quotes omheen staan? Het type enum is meestal niet nodig. Neem gewoon een TINYINT die je op 0 of 1 zet.
 
NiVin

niVin

05/07/2008 19:47:00
Quote Anchor link
Hee Jan, Enkele quotes in mijn insert commando of in het definiëren vd enum waardes? In mijn enum def gewoon enkele..(ik werk met phpmyadmin).

Dan ga ik het wel met TINYINT proberen, maar heb je voor de volledigheid nog een oplossing voor als ik het toch met enum wil doen?
 
Jan Koehoorn

Jan Koehoorn

05/07/2008 19:56:00
Quote Anchor link
INSERT INTO tabelnaam
(veldnaam)
VALUES
('enumwaarde')

Maar een TINYINT is sneller, en als veel ENUM waardes hebt maak je gewoon een nieuwe tabel en in de oude een foreign key naar het id veld van de nieuwe tabel.
 
NiVin

niVin

05/07/2008 20:07:00
Quote Anchor link
maar als ik dit doe

INSERT INTO bannersTEST (status) VALUES ('readed') WHERE id = 1;

krijg ik dus een error

ERROR 1064 (42000): 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 'WHERE
id = 1' at line 1

terwijl ik verwacht dat t werkt...
 
Douwe

Douwe

05/07/2008 20:12:00
Quote Anchor link
Ik zie ook geen fout in die query, het enige dat ik nooit gebruik is de eindigende ; , misschien is dat het probleem? Verder zie ik niets vreemds...
 
Bart van der veen

bart van der veen

05/07/2008 20:20:00
Quote Anchor link
met insert verander je toch geen velden in een al bestaand record... dat doe je met UPDATE

zie http://www.sitemasters.be/tutorials/6/1/169/MySQL/UPDATE

of mis ik nou het punt...?
 
- SanThe -

- SanThe -

05/07/2008 20:21:00
Quote Anchor link
Ach wat lezen we slecht.
INSERT INTO .................... zonder where()
UPDATE .................... met WHERE
 
Douwe

Douwe

05/07/2008 20:24:00
Quote Anchor link
Haha ^^ You're right ;)
 
NiVin

niVin

05/07/2008 20:29:00
Quote Anchor link
mysql> UPDATE bannersTEST SET status = 'readed ' WHERE id = 1;
Query OK, 1 row affected (0.02 sec)
Rows matched: 1 Changed: 1 Warnings: 0

:) :) dit werkt idd wel, tnx
 
- SanThe -

- SanThe -

05/07/2008 20:41:00
Quote Anchor link
En als je het nu met een 1 doet? Werkt dat dan ook?
 
NiVin

niVin

05/07/2008 23:47:00
Quote Anchor link
Ja met 1 werkt t ook..

toch weer wat opgeschoten:)

gr
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.