webForumDet fria alternativet

ALTER TABLE, liten fråga

6 svar · 418 visningar · startad av kalaserc

kalasercMedlem sedan apr. 20047 inlägg
#1

Hej alla där ute!

Jag har en hel drös med databaser som har olika versioner. Dom innehåller mer eller mindre samma saker. Nu vill jag få dessa 'up to date' med ett script som jag skriver.

För att dom ska bli 'up to date' vill jag lägga till några kolumner i en del tabeller. Detta gör jag med ALTER TABLE table ADD ( ... ); Ja ni vet.

Nu är problemet det att vissa av mina databaser har redan dessa kolumner jag vill lägga till. När jag då kör mitt script avbryts det med ett error i stil med

ERROR 1060 at line xxx: Duplicate column name 'tabell'

Nu är frågan denna, finns det något sätt att ignorera dessa varningar och bara köra vidare som vanligt? Jag vill altså inte att scritet ska avslutas.

Tack på förhand / Jocke

LarsGMedlem sedan dec. 200012 464 inlägg
#2

Vilken databashanterare använder du?

missModestyMedlem sedan apr. 2005254 inlägg
#3

Är det inte bättre att du sållar bort de tabeller som redan har kolumnen innan du försöker lägga till den?

missModestyMedlem sedan apr. 2005254 inlägg
#4

En liten länk som kanske hjälper:

http://www.cryer.co.uk/brian/sqlserver/howtoaddcolumnunlessexists.htm

kalasercMedlem sedan apr. 20047 inlägg
#5

missModesty skrev:

Är det inte bättre att du sållar bort de tabeller som redan har kolumnen innan du försöker lägga till den?

Det låter som en bra idé. Hur löser man det direkt med sql? Jag tänkte ju att man kunde få det per automatik, men tydligen inte. Så, ska man göra någon form av ifsats i så fall?

Det är för övrigt MySQL jag kör.

Edit: Här var vi snabba! Tackar för hjälpen ska se om det fungerar :)

Edit2: Det verkade tyvärr inte som om det fungerade mot MySQL. Följande fungerar inte allt för lyckat: select * from syscolumns. Testade det eftersom första frågan inte fungerade alls.

Nåväl, någon som vet? :q

LarsGMedlem sedan dec. 200012 464 inlägg
#6

Mysql har inte stöd för något dylikt direkt i SQL.

kalasercMedlem sedan apr. 20047 inlägg
#7

Bra tack då vet jag. Lite trist. Får försöka bygga in lite logik i bashscriptet då.

137 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)