Hej! Det du kan göra är som du gör nu, men istället för att loopa igenom alla fält som finns slänger du in de namn som ska finnas. Verkar vara som en min version av MySQL inte stödjer where satser efter show columns eller show fields. Får ett varker ERROR 1064. Ja, det kan hända för jag kör 5:an.Kontrollera om ett fält existerar i en tabell
Finns det något enkelt sätt att kontrollera om ett visst fältnamn existerar i en tabell?
Jag håller på med en funktion som kontrollerar en databas och ser så att den uppfyller villkoren för just denna version av programvaru installationen.
Att kontrollera om en tabell finns är ju enkelt med check table <namn> och se om Msg_text skickar tillbaka OK eller (om tabellen saknas) ett felmeddelande.
Idag loopar jag igenom resultatet från show fields from <tabellnamn> och kontrollerar detta mot min array som innehåller de fält som skall finnas. Dock blir detta rätt mycket loopande och jag undrar om det finns något bättre / smartare sätt att göra testen på.
M v H
Daniel
PS. Idagsläget ligger testen i VB och ASP 1.x men .net/c#/php eller vad ni vill är helt ok men det jag främst är ute efter är om det finns någon form av kommando i MySQL där jag skickar in tabellnamn samt ett fält namn och får ett svar om fältet existerar i tabellen.Sv: Kontrollera om ett fält existerar i en tabell
Tex:
SHOW COLUMNS FROM <tabell> WHERE Field IN ('fält1','fält2','fält3')
Sen är det enda som du behöver få gjort är att slänga in alla fältens namn mellan parenteserna och kontrollera att antalet rader som returnerats är samma som antalet element i din array.
Kan det bli enklare?
Sv:Kontrollera om ett fält existerar i en tabell
Får väl köra vidare på den lösningen jag har och pröva den andra metoden när vi uppgraderat till 5.xSv: Kontrollera om ett fält existerar i en tabell
Dock har jag inte testat genom en SQL frågan från ASP.NET, men det borde väl fungera...
Men det du också skulle kunna göra är att hämta in alla fält med show fields eller show columns till ett dataset och därefter filtrerar ut raderna genom defaultview metoden, tror det borde fungera med "field IN ('fält1','fält2',...)" där.