Hoi,

In een SQL database is bij een update een aantal kolommen verandert naar een varbinary formaat:

oud
`user_real_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',

nieuw
 `user_real_name` varbinary(255) NOT NULL DEFAULT '',


Ik krijg nu een foutmelding bij het herstellen van de database.

#1054 - Onbekende kolom '0x' in field list


In de insert wordt ",0x," gebruikt voor de betreffende kolom. Moet ik de 0x tussen de komma's geheel verwijderen of moet er iets voor terug komen?
Hoe herstel je de database?
Heb je al een repair geprobeerd?
Ik denk dat iets wat leeg is niet kan repareren, ik probeer alleen vanuit een back up terug te plaatsen.
Een lege database bestaat niet. Er zit altijd metadata of structuur in.
Maar hoe laad je die backup in?
Nou ja, niet leeg, maar geen inhoud in de tabel ... of zo iets.

Met INSERT via phpadmin probeer ik de inhoud er in te zetten.
Kan je wat concreter zijn wat je precies doet?
En hoe ziet je structuur eruit? Als je geen structuur hebt met dat veld, kan je ook niks INSERT'en.
Sorry, ik weet even niet hoe ik concreter moet zijn buiten de sql code hier in te plaatsen, maar dan heb ik een datalek. Maar misschien is dit duidelijk genoeg?

INSERT INTO tabelnaam VALUES (1,0xhexgetal,0x, etc ....);
Er is geen enkele sprake van een datalek als je dummy data gebruikt.
Dus de geheimzinnigheid mag je achterwege laten, dat helpt ook gemakkelijker.

Maar hoe ziet je structuur er dan uit? Heb je die al?
Ja, zie in de eerste bijdrage, daar staat de oude en de nieuwe structuur van de derde kolom. De tweede kolom heeft dezelfde metamorfose ondergaan. Ziet er in structuur net zo uit. De eerste kolom is een id.
Dat gaat over user_real_name, je error beschrijft een missende kolom 0x.
In je INSERT maak ik op dat '0x' een waarde is, en geen tabelnaam.

Daarom raad ik je aan om om de values een single quote te zetten.
Ik snap niet wat je bedoeld, moet ik single quote om de integers en binary zetten? Dus ('1','0xhexgetal','0x',enz...)?

Reageren