2020-06-04, 13:38
  #1
Medlem
maniacmans avatar
Hej,

r det ngon som vet hur man anvnder basic TSQL i MariaDb/MySql?
Jag skulle vilja verstta ngot liknande:

Kod:
-- START
if object_id('test.mytable') is not null
     delete test.mytable where id between 10 and 100
else
      select 'No table found'
-- END

Frgan r allts hur syntaxen fungerar inte varfr/vad jag raderar i tabellen eller varfr jag vill gra det.
Det verkar ju finnas kommandon som "create if not exist" mm, men det r inte detta jag r ute efter. Det r en simpel IF som beror p ett content i en tabell eller om ett object existerar vilket sedan leder till ett action.
__________________
Senast redigerad av maniacman 2020-06-04 kl. 13:44.
Citera
2020-06-05, 06:55
  #2
Moderator
Protons avatar
Citat:
Ursprungligen postat av maniacman
Hej,

r det ngon som vet hur man anvnder basic TSQL i MariaDb/MySql?
Jag skulle vilja verstta ngot liknande:

Kod:
-- START
if object_id('test.mytable') is not null
     delete test.mytable where id between 10 and 100
else
      select 'No table found'
-- END

Frgan r allts hur syntaxen fungerar inte varfr/vad jag raderar i tabellen eller varfr jag vill gra det.
Det verkar ju finnas kommandon som "create if not exist" mm, men det r inte detta jag r ute efter. Det r en simpel IF som beror p ett content i en tabell eller om ett object existerar vilket sedan leder till ett action.
Tvivlar p att du kan anvnd T-SQL (Microsofts dialekt av SQL) i en mariadb-installation till att brja med.

Om vi utgr frn att resten av syntaxen r korrekt har du ju ett fel i din SQL, det borde vara

Kod:
DELETE FROM test.mytable WHEREid between 10 and 100
, du ser ut att ha glmt FROM.

Ser nu att object_id r frn T-SQL med, det kommer ju inte funka.

Att kolla om en tabell finns i mysql borde gras shr:

Kod:
SELECT 
  * 
FROM
  information_schema 
WHERE TABLE_NAME = 'test.mytable' 

Iffar i mysql gr att lsa om hr:
https://dev.mysql.com/doc/refman/8.0/en/if.html

Nu borde du kunna f det att funka.
Citera
2020-06-06, 10:23
  #3
Medlem
maniacmans avatar
Citat:
Ursprungligen postat av Proton
Tvivlar p att du kan anvnd T-SQL (Microsofts dialekt av SQL) i en mariadb-installation till att brja med.

Om vi utgr frn att resten av syntaxen r korrekt har du ju ett fel i din SQL, det borde vara

Kod:
DELETE FROM test.mytable WHEREid between 10 and 100
, du ser ut att ha glmt FROM.

Ser nu att object_id r frn T-SQL med, det kommer ju inte funka.

Att kolla om en tabell finns i mysql borde gras shr:

Kod:
SELECT 
  * 
FROM
  information_schema 
WHERE TABLE_NAME = 'test.mytable' 

Iffar i mysql gr att lsa om hr:
https://dev.mysql.com/doc/refman/8.0/en/if.html

Nu borde du kunna f det att funka.

Min kod r SQLServer ja.

Jag tror du missade hela pongen. Du fokuserade bara p detaljerna i min kod (vilken r korrekt ang tex delete. from behvs inte) utan att svara p frgan.

Jag vet ocks hur jag frgar information schema eller den kortare versionen show table. Men frgan r ju hur man gr en IF sats baserat p ett kontent-svar frn sql.

Hur skriver man tex:
Kod:
IF (select 1)=1
     Select inne i if-satsen

Jag ser att dokumentationen sger att man ska skriva: if {expr} then {do something } End if;

Det funkar dock inte fr mig...
__________________
Senast redigerad av maniacman 2020-06-06 kl. 10:26.
Citera
2020-06-06, 11:04
  #4
Moderator
Protons avatar
Citat:
Ursprungligen postat av maniacman
Min kod r SQLServer ja.

Jag tror du missade hela pongen. Du fokuserade bara p detaljerna i min kod (vilken r korrekt ang tex delete. from behvs inte) utan att svara p frgan.

Jag vet ocks hur jag frgar information schema eller den kortare versionen show table. Men frgan r ju hur man gr en IF sats baserat p ett kontent-svar frn sql.

Hur skriver man tex:
Kod:
IF (select 1)=1
     Select inne i if-satsen

Jag ser att dokumentationen sger att man ska skriva: if {expr} then {do something } End if;

Det funkar dock inte fr mig...
Hur ser din kod ut nu d?
Det kanske bara r nt litet som saknas?

Vad sgs om detta d?

Kod:
IF(EXISTS(SELECT 1 from table where condition='yaddayadda')) THEN
    SELECT * FROM table1
ELSE
    SELECT * FROM table2
END IF

Borde vl funka?
__________________
Senast redigerad av Proton 2020-06-06 kl. 11:09.
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in