webForumDet fria alternativet

ALTER TABLE, liten fråga

Databaser & SQL

6 svar · 418 visningar · startad av kalaserc

Medlem sedan apr. 20047 inlägg
Frågan#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

Medlem sedan dec. 200012 464 inlägg
#2

Vilken databashanterare använder du?

Medlem 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?

Medlem sedan apr. 2005254 inlägg
#4

En liten länk som kanske hjälper:

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

Medlem 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

Medlem sedan dec. 200012 464 inlägg
#6

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

Medlem 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å.

259 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)